I am moving an existing ASP application from IIS5 on Win2003 to IIS7 on Win2008.
After going over all the install notes and setting up ASP to run, everything worked fine while I was logged into the console.
As soon as I log off the console, no ASP application will run. I get a 500 error even though normal .htm pages will render from the site fine.
I tried a simple page with only a response.write " Hell " and it fails with a 500 error. I set up Failed Request error logging and it just says 500 error as soon as it calls the ASP script.
How can this be solved?
Solution
Tweaked a setting in IIS:
Internet Information Services (IIS) Manager ->
Default Web Site ->
Error Pages properties
select Detail errors
Reset to Detailed errors only and now everything works
Out of the blue Google Search:
Classic ASP on IIS7: refusing to send errors to browser on 500 Internal Server Error
Does this help you ?
Related
I run a website on IIS 8.5 and ASP.NET. I recently moved my website to a new server. Some users are getting an internal server error when trying to postback or upload on the site. As an example, when they try to reply in the forum (I use YetAnotherForum), they will get the error page.
I think I've narrowed it down to postbacks. Whenever there is a postback, they will get the error. This includes using ASP.NET buttons on the page.
My big problem is that the error is not logged anywhere. It is not in the event viewer, failed request logs, or even the server log. I have all application errors caught and logged in Global.asax, but the error never reaches the handler. The users just get the error on the screen and it doesn't seem to be recognized at all by the server. Here is a screenshot of the error:
Generic IIS Error
As you can see, it is a very generic IIS error.
I am still maintaining a test site on my old server. I sent one person that was getting the error to the test site to see if he got the error. He did not - he only gets the error on the new site on the new server. I'm guessing it must be some setting I am missing.
Only a select few users are getting the error. The ones I have talked to are using Windows 10. They have tried all of the different browsers (IE, Firefox, and Chrome), and none of them work. I also have Windows 10, but I do not get the error.
Any chance someone has seen this error and knows the fix?
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.
Make sure that you are not calling Server.ClearError() in Application_Error of Global.asax.cs that ended up being my problem.
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.
Make sure you have enabled HTTP Activation
I have a dev and prod Windows 2008 R2 servers with IIS7 and siteminder, which as far as I can tell are setup the same. Issue being the production websites work but the development ones do not.
Issue being that when I navigate to any dev website, it says "the page cannot be displayed because an internal server error has occured." I do not get a challenge in dev (which I believe is the cause of the issue), but I do in prod. This goes for classic ASP pages or ASP.NET pages.
Some findings :-
- IIS has Windows authentication enabled and all others disabled
- Windows Authentication Provider is Negotiate (tried Negotiate:Kerberos, same result)
- WindowsAuthentication and WindowsAuthenticationModule (Native) are both present in Modules
- WindowsAuthentication is installed under Server Manager -> IIS -> Roles
- Upon receipt of the above error message, IIS logs shows the access with error 401 2 5
All the solutions I found online either do not have the right setup as I do above, or suggests I disable Windows authentication and enable Anonymous Authentication. If I do so, all works fine but the only issue being my websites require Windows authentication to identify the user. I'm at my wit's end and am just short of reinstalling something in hope it works. Any possibilities or log files that I have overlooked?
After screwing around a bit I finally solved my problem ... hope this helps someone.
I realized in fact ASP pages were working but ASP.NET pages were not working
When I had turned on Anonymous Authentication, the ASP.NET pages were now giving 500 0 or 500 19 errors in IIS logs, instead of 401 2 5 with Windows Authentication
I tried to launch a ASP.NET page from within the localhost and got then 500 error with a more detailed error saying I should use relative path in httpErrors under web.config (??)
At this point I realized I had earlier changed the 403 error to a custom file at the default website level, then changed it back. Despite changing it back to it's previous value, What this ended up doing was adding a "remove" then an "add" tag, both for 403.htm, under httpErrors in the wwwroot/web.config. After I deleted the entire httpErrors segment, my websites started working again.
Reverting back to Windows Authentication at this point also worked.
So some take aways is to test websites locally first and keep in mind the existing of the wwwroot/web.config giving near untraceable errors ...
We are in the process of migrating an ASP Classic/ASP.NET application from IIS 6 to IIS 7.5. Most things run just fine in classic mode but we are having alot of problems with how errors are handled by IIS 7.5. We do our error reporting using a classic ASP page where we capture the error information here then redirect to a page to display the error. Based on our testing both Server.GetLastError and Request.ServerVariables("SCRIPT_NAME") when accessed from the logging page do not return the error details and source. Are there other ways we should retrieve the error information on IIS 7.5 or perform the logging?
In case this helps, using freb we have noticed that IIS appears to generate a completely new request then begins executing our error capturing.
Thanks in advance.
#smaclell: See http://dylanbeattie.blogspot.com/2008/12/fun-with-servergetlasterror-in-classic.html for a potential solution for you.
Here's the relevant paragraph from the article:
There was a very similar known bug in Vista which was supposedly fixed
in SP1, but it looks like the same fix isn't part of Windows 2008
Server yet. There is a workaround, though - if you set the site's
default error property (under IIS settings -> Error Pages -> Edit
Feature Settings...) to the custom page, IIS will invoke
this page whenever an error is not handled by an explicitly configured
status-code handler (so your 404, etc. handlers will still work) - but
for some reason, handling the error this way means
Server.GetLastError() still works properly.
We have an old system running on a WinServer2003 R2 - IIS6 and it was written using classic ASP.
We need to trap all errors and for that, I configured IIS to redirect 404s and 500s to a custom page (custom errors config) that writes the info to a log file (this page creates and manages the logs).
Here is the weird thing: The first time the error occurs, the page is redirected and I get my log file entry. But, if this page is loaded again (I hit F5, or other user goes there, etc), the browser receives a blank page: no error message and my custom page is ever called.
If I restart IIS6 I get the same behavior, first time it works, next not.
-> Send ASP errors to browser is turned on
-> Show friendly http errors is turned off in my explorer
Any thoughts?
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.
Try doing this while running Fiddler ( http://www.fiddlertool.com/Fiddler2/version.asp ) or some other tool that makes it possible to see what's being sent here and there.
Also; if you set IIS to log in the IIS log format, errors will show up in the log file at the very end of the line for the request that ended in error.
maybe its this issue
http://www.webdevbros.net/2006/11/26/ie7-bug-blank-page-white-screen-after-some-refreshs/