Cassic ASP в VB Проблемы с перенаправлением - PullRequest
0 голосов
/ 10 сентября 2011

Я унаследовал классический ASP-сайт, на котором возникла странная проблема. В верхней части страницы его перенаправление на https для безопасного соединения. Код:

<%
Response.Buffer = True

' Redirect to SSL if needed:
servername=Request.ServerVariables("SERVER_NAME")
scriptname=Request.ServerVariables("SCRIPT_NAME")
serverport=Request.ServerVariables("SERVER_PORT")

if serverport="80" and (InStr(servername, "192.168.1.") = 0 and servername <> "localhost")  then
    Response.Redirect "https://www.theurl.com" & scriptname & "?package=" + Request.QueryString("package")
else
    'response.Write("Development testing")
end if

%>

Этот код находится вверху файла. Ничто не до этого. Когда я открываю браузер и загружаю страницу, я старею:

Response object error 'ASP 0156 : 80004005'

The HTTP headers are already written to the client browser. Any HTTP header modifications must be made before writing page content. 

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

Если это в верхней части файла, как заголовки уже могут быть записаны?

Обновление: Полный исходный код, предоставленный источником просмотра IE8:

 <font face="Arial" size=2>
<p>Response object</font> <font face="Arial" size=2>error 'ASP 0156 : 80004005'</font>
<p>
<font face="Arial" size=2>Header Error</font>
<p>
<font face="Arial" size=2>/path/file.asp</font><font face="Arial" size=2>, line 10</font>
<p>
<font face="Arial" size=2>The HTTP headers are already written to the client browser. Any HTTP header modifications must be made before writing page content.
</font> 

Да, место до

1 Ответ

1 голос
/ 10 сентября 2011

См. http://support.microsoft.com/kb/159402

Добавьте Response.Clear до и Response.End после Response.Redirect.

...