简体   繁体   中英

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

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!

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 ".

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.

确保你没有在Global.asax.cs的Application_Error中调用Server.ClearError(),这最终成了我的问题。

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.

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.

确保已启用HTTP激活

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM