По некоторым причинам мне приходится перенаправлять запросы из моего приложения MVC 4 на страницы с абсолютными URL-адресами, расположенными в других доменах. Вот код, который я использую:Перенаправление по абсолютному URL не работает в MVC 4
public ActionResult Test(string url)
{
return Redirect(url);
}
Все отлично работает, когда я пытаюсь его на моей локальной машине, но когда я публикую код для производства и попытаться заставить его работать там, то у меня есть некоторые проблемы. например, для перенаправления запроса на «https://stackoverflow.com/questions/ask» он будет перенаправлен на «http: // {{myserverdomain.com}}/questions/ask». Таким образом, запрос будет перенаправлен на локальный путь «questions/ask» вместо абсолютного URL.
Не знаю, что и где я должен проверить. Я был бы признателен за какие-то намеки, что может быть проблема и где, чтобы проверить его ...
Только в случае, если: сервер Windows Server 2008 R2 Enterprise
UPDATE
URL/HTML кодирование не причина проблемы. Изменение метода к
public ActionResult Test()
{
return Redirect("https://stackoverflow.com/questions/ask");
}
даст тот же результат ... он будет перенаправлен на «вопросы/задать»/подозревает, что причина с модулем перезаписи URL, но не знает, как проверить его еще ...
РЕШЕНИЕ
вот ссылка, которая помогла решить проблему: http://forums.iis.net/t/1171047.aspx
Я этого никогда не видел, но Я бы проверял несколько вещей. Во-первых, ваш URL-адрес кодируется HTML/URL-адресом и вызывает проблему. Во-вторых, вы включаете в свой url protocal (http (s): //)? Что делать, если вы на самом деле сначала установили url в контроллере, а затем перенаправили (например, с вашим примером выше) - каков результат? наконец, если вы передаете URl контроллеру для перенаправления, почему бы просто не установить это как цель вашей ссылки на ваш взгляд? – Tommy
Кодирование Url/Html не является причиной ... просто изменилось описание проблемы. Это пример теста, и на самом деле я не буду получать URL как параметр метода :) –