Существует ли ограничение на количество вызовов для перенаправления ответов Asp.Net 4.0 или IIS7, которые можно использовать подряд - PullRequest
0 голосов
/ 25 января 2011

В нашем приложении мы разбили наше приложение на несколько модулей.Когда вызывается страница logout.aspx, она создает стек страниц для выхода из системы, по одной в каждом модуле.Затем он перенаправляет на страницу выхода каждого модуля, которая перенаправляет обратно к вызывающей стороне.

Это работало нормально, но в нашем новом приложении, которое использует APS.Net 4.0, перенаправления, похоже, перестали работать.Fiddler показывает, что перенаправление было отправлено ... но браузер не отправляет следующий GET.

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

Таким образом, единственное отличие состоит в том, что в ряду используются меньшие перенаправления.

Вот последние 302, которые получает браузер ... он просто не получаетloginredirect.htm:

> GET /AmsiWeb/logoutCoordinator.aspx
> HTTP/1.1 Accept:
> application/x-ms-application,
> image/jpeg, application/xaml+xml,
> image/gif, image/pjpeg,
> application/x-ms-xbap,
> application/vnd.ms-excel,
> application/vnd.ms-powerpoint,
> application/msword,
> application/x-shockwave-flash, */*
> Accept-Language: en-US User-Agent:
> Mozilla/4.0 (compatible; MSIE 8.0;
> Windows NT 6.1; WOW64; Trident/4.0;
> SLCC2; .NET CLR 2.0.50727; .NET CLR
> 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.2; MS-RTC LM
> 8; .NET4.0C; .NET4.0E)
> Accept-Encoding: gzip, deflate
> Connection: Keep-Alive Host: ustawvqa1
> Cookie:
> ASP.NET_SessionId=uf51gkiem0ditfvyi3pvkhoj;
> GeacSessionId=aa6be7f2-9bd5-4700-9a21-e9fa6c0a3b19; PortalPathURL=;
> PortalPath=C:\inetpub\wwwroot\AmsiWeb\esiteweb\; ASPSESSIONIDQQRDQTCC=EIMNDBIDIPHCGCMFNHBOHOOK;
> .ASPXAUTH=51C5F3FA040DFEDDFB163D0DF5B5F9D2AAAB91EA76A5388BFE61BC54D83FEF29EB3B0C7886FB473EF9391999D67921B5BE0CEA403F6BA00D5954D8E16BF054212EA4754C40F409473A3990D1A41867D9099ECD45EC229C6205C599727A5BFB19F6DD0CE72B8480CE1C13C10C7A39D50503420A79B70248DF236403C5E632CE8D670DBEF5F0F64F87141A546B8A471EAA163DEA445F76AC6F36D36F7EC3BA805C
> 
> 
> HTTP/1.1 302 Found Cache-Control:
> private Content-Type: text/html;
> charset=utf-8 Location:
> /AmsiWeb/LogOutRedirect.htm Server:
> Microsoft-IIS/7.5 X-AspNet-Version:
> 4.0.30319 Set-Cookie: .ASPXAUTH=; expires=Tue, 12-Oct-1999 04:00:00 GMT;
> path=/; HttpOnly X-Powered-By: ASP.NET
> Date: Tue, 25 Jan 2011 19:20:21 GMT
> Content-Length: 144
> 
> <html><head><title>Object
> moved</title></head><body> <h2>Object
> moved to <a
> href="/AmsiWeb/LogOutRedirect.htm">here</a>.</h2>
> </body></html>

Мой вопрос ... есть ли предел для response.redirect, который вы можете использовать?Если да, то как мне это изменить ... если нет, есть ли у кого-нибудь еще идеи о том, что здесь может происходить.

(предположительно, есть ответ на этот вопрос на бирже экспертов)

1 Ответ

1 голос
/ 25 января 2011

Я бы предположил, что это остановка браузера, а не веб-сервер. Так же, как большинство браузеров теперь спрашивают, после нескольких случаев, хотите ли вы показать больше alert() s, может быть встроен механизм «безопасности», который предполагает, что многие перенаправления являются небезопасным поведением.

Я также более склонен верить в это, учитывая ваше упоминание о видимости отправляемого заголовка Location:, но без дальнейшего запроса GET.

Follow-Up:

Похоже, они существуют в браузерах. Однако пределы могут быть изменены с незначительными изменениями. Также, как я читал, убедитесь, что вы не создаете цикл перенаправления (/PageA.aspx не перенаправляет обратно на себя или /PageA.aspx в /PageB.aspx, а затем обратно в /PageA.aspx)

p.s. Обмен экспертами, или , который мне удалось найти , содержит ответ со ссылкой на заброшенную ссылку (иронично, учитывая текст в ссылке)

...