我们的Classic ASP应用程序包含一个可以通过HTTP调用的Web服务。 POST或GET。 Web服务尽职,然后使用Response.Write通过HTTP写出XML消息。
这是一个例子。
Response.ContentType = "text/xml"
Response.Status = "500 Error"
Response.Write("<?xml version=""1.0"" ?>")
Response.Write("<PeelMe>")
Response.Write("<Error>Your orange was actually blue!</Error>")
Response.Write("</PeelMe>")
当应用程序在IIS 6.0中托管时,调用者收到了XML,并且能够很好地解析它。
然后,我们切换到IIS 7.5。
在IIS 6.0中,我们设置了一个客户错误页面,让我们称之为“Blah.asp”,在实际用户浏览网站时发生错误时向浏览器呈现某些自定义文本。当我们切换到IIS 7.5时,写入Web服务调用者的所有500条错误消息现在都被IIS 7.5捕获,将线程重定向到Blah.asp,然后将Blah.asp的HTML写回调用者。
这是我的问题:
如何使IIS 7.5像IIS 6.0一样运行,以便当我想将500错误消息写回Web服务调用者时,我可以这样做,而不会让IIS 7.5的自定义错误处理妨碍?
答案 0 :(得分:0)
您是否尝试将应用池设置为asp经典?我们最近做了很多升级;不断遇到7.5的问题。
重新设置应用程序池,可能会解决80%的问题。
答案 1 :(得分:0)
从IIS7开始,web.config提供了更多选项。您可以尝试以下方法来获得您所追求的bevaviour:
<system.webServer>
<httpErrors errorMode="Detailed">
<remove statusCode="500" subStatusCode="-1" />
<error statusCode="500" prefixLanguageFilePath="" path="/[CUSTOMERRORPAGE].asp" responseMode="ExecuteURL" />
</httpErrors>
</system.webServer>