Как переписать Response.Redirect, чтобы порт не приходил с ним

2

У меня есть сценарий, что мой балансировщик нагрузки переводит порт 80 извне в порт 801, который является локальным. И когда дело доходит до сервера, сервер явно видит порт 801, а в Response.Redirect пытается ввести порт 801 в URL-адрес, к которому он перенаправляет, но это не является желаемым решением для меня.

Я думаю, что: 1. Перезаписать Response.Redirect, чтобы я удалил порт из него. 2. Имейте некоторую конфигурацию в web.config, чтобы игнорировать этот порт. 3. Наиболее неприятным способом решения проблемы является изменение всего приложения на использование полного URL-адреса внутри Response.Redirect, который является большой болью.

Есть ли хорошее решение этой проблемы?

Окружающая среда: Windows Vista, Windows 2003 Server, Windows 2008 Server IIS 6, IIS 7 ASP.NET С# и VB.NET

Теги:
iis
response.redirect

3 ответа

5
Лучший ответ

Хорошо,

Я получил ответ сам. Я надеюсь, что это решение будет полезно и для других.

Ну, ответ находится в файле web.config. В разделе

<system.web>
<httpRuntime useFullyQualifiedRedirectUrl="false" maxRequestLength="2526" requestLengthDiskThreshold="2526"/>
</system.web>

где важная часть - это false.

useFullyQualifiedRedirectUrl="false"

Это верно по умолчанию.

0

Вам нужно, чтобы это было перенаправление, или вы можете просто использовать Server.Transfer()?

  • 0
    Я должен был быть перенаправлен на самом деле.
0

Перенаправить его в исходное имя хоста, чтобы он прошел через балансировщик нагрузки без явного порта. Переадресация создается (или может быть построена) программно, поэтому вы должны быть в состоянии избежать проблемы.

  • 0
    Это то, что мы делаем в любом случае, но порт входит в картину. И у меня уже так много перенаправлений (их сотни)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню