Why are blank pages being served with “200 OK” for asp.net errors in IIS 8.5 (Win 2012 R2)?

感情迁移 提交于 2019-12-18 14:57:03

问题


I've set up a new Windows 2012 R2 server running IIS 8.5.

We noticed that when an error occurs (eg the ASP.NET State Service was not running) that instead of outputting a 500 status code error screen, the request actually returns a totally blank page (only headers - with no content). We obviously need to see the errors and serving 200 OK for an error could be very problematic for indexers like Google etc or any wesite monitoring tools (which would not notify us that the site had gone offline).

On our other servers (IIS 7) we see the "yellow error screen" with a message like "could not connect to state server" (or similar).

What could possibly be wrong here? Is there some setting to globablly disable all errors (but this would be stupid if it also serves the 200 status code) or could something else be getting in the way?

The only other thing which could be interfering is we've got ISAPI_Rewrite installed on the server (but this doesn't usually cause this problem).

Thanks!


回答1:


Had a similar issue on Windows 8.

In settings search for "Turn Windows features on or off".

Check that the following features are enabled

"/Internet Information Services/World Wide Web Services/Common HTTP Features/HTTP Errors". "/Internet Information Services/World Wide Web Services/Common HTTP Features/Static Content".




回答2:


You need to ensure Server Side Debugging is not enabled in the ASP module.

Classic ASP server 500 errors are returned as 200's. An attempt is made at opening the Server Side Debug Application, that then can't be found and IIS subsequently returns a 200 response and a blank page.




回答3:


Make sure that you are not calling Server.ClearError() in Application_Error of Global.asax.cs that ended up being my problem.




回答4:


Ripping out all Global.asax code helped me to find the cause of the error.

After that, the IIS started to return the error page as expected. Then, after the fix is applied, I returned the Global.asax code back.

Maybe this case helps you.




回答5:


I had a similar issue when requesting the Default.aspx (set as page default in directory). The Server returned status 200, but the Content was blank.

In this case it worked to switch the Application pool's managed pipeline mode from integrated to classic.




回答6:


Make sure you have enabled HTTP Activation



来源:https://stackoverflow.com/questions/20173698/why-are-blank-pages-being-served-with-200-ok-for-asp-net-errors-in-iis-8-5-wi

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!