Переопределить корень приложения - PullRequest
0 голосов
/ 01 декабря 2011

У меня есть приложение в iis, доступное как http://localhost/app/, что означает, что все относительные ссылки, созданные UrlHelper, разрешаются как http://localhost/app/???.

Пример: Url.Content("~/images/background.png") разрешается в /app/images/background.png

Теперь проблема в том, что ISA-сервер добавляет к приложению префикс, так что приложение доступно извне как http://foo.com/prefix/app/???

Теперь mvc будет правильно обрабатывать запрос, потому что он по-прежнему думает, что путь запроса просто /app/???, но не будет генерировать ссылки с этим префиксом при использовании UrlHelper.

Таким образом, вопрос в том, есть ли способ сказать MVC генерировать ссылки с другим виртуальным путем, чем определено в iis?

Пример: Url.Content("~/images/background.png") должно разрешиться в /prefix/app/images/background.png

Я действительно не хочу создавать собственные UrlHelper расширения, потому что это не повлияет на такие вещи, как Html.ActionLink или RedirectToAction.

1 Ответ

1 голос
/ 02 декабря 2011

Вам может потребоваться перейти в контекст запроса и изменить URL-адрес в начале конвейера запросов, чтобы к моменту запуска UrlHelper Request.RawUrl возвращал правильный путь с префиксом.Отличный вопрос, так как я постараюсь придумать логику в ближайшее время.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...