Change HTTP Status 503 To 200 When Serving App_offline.htm For Specific URL?
Feb 22, 2011
The app_offline.htm file that ASP.NET serves returns the http status 503. This is the correct behavior for most situations. However, in the scenario where a specific URL is requested (e.g. [URL]), I'd like to change the returned http status to 200, while still returning http status 503 in all other situations. Is this possible?
The reason why I want to do this is whenever we do scheduled maintenance on our website, we use the app_offline.htm file, but we don't want our uptime monitoring service [URL] to report downtime during our scheduled maintenance.
I assume this would have to be at the IIS level because the app_offline.htm gets served very early on in the request processing cycle.
I have created an app_offline.htm file for an ASP.NET MVC2 application running on IIS7 / Win2008 64-bit, and ensured that it's over 512 bytes (it's 2KB right now). On my dev box running Visual Studio 2010, it works like a charm, but when I put it on the production box, all I get is the generic HTTP 500 error saying "The page cannot be displayed because an internal server error has occurred."
What's especially strange is that I don't get anything logged in the application event log, nor does ELMAH pick anything up. I've disabled custom errors, put FormsAuthentication location exceptions for the file, ensured I'm not referencing any other files (images, etc.), but nothing fixes it.
I'm writing an HTTP handler in ASP.NET 4.0 and IIS7 and I need to generate a file-not-found condition.
I copied the following code from Mathew McDonald's new book, Pro ASP.Net 4 in C# 2010. (The response variable is an instance of the current HttpResponse.)
response.Status = "File not found"; response.StatusCode = 404;
However, I found that the first line generates the run-time error HTTP status string is not valid.
If, instead of the lines above, I use the following:
response.Status = "404 Not found";
Then everything seems to work fine. In fact, I even see that response.StatusCode is set to 404 automatically.
My problem is that I don't want this to fail on the production server. So I'd feel much better if I could understand the "correct" way to accomplish this. Why did the first approach work for Mathew McDonald but not for me? And is the second approach always going to be reliable?
When I use WatiN to go to a specific web page, how can I fake the HTTP referrer with a query string (i.e. request is from google search with query string q=search_term)? So I can verify that the response header has the 301 redirect for specific referrer URL.
I successfully implemented role based authorization in ASP.NET. When a person does not have the needed role he gets to see an error page for 401.2 not authorized.
What I would like to accomplish now is to have a custom 401 page in my application and have it redirected there via settings in the web.config. I tried this:
When I try to view the page in a browser (either Firefox or IE), it asks me for the username and password, and then...asks me for the username and password again.
In ASP.NET you can set the Response.StatusCode to for example 404. Should the status line / description always be set? (to in this case "404 Page Not Found")
How do you get the description if you only have the code (404)? Is this somewhere in the framework or do you manually have to hardcode the descriptions?
I'm new Developer in Web Servicei use VS.2005 C# 2.i have 3 Client PC With Webservice Doing some calculation & Server with ASPX pages the server side will call the client LocalHost webService to do some calculation & return Valuethe problem i get error Massege (The request failed with HTTP status 404: Not Found.)
using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; [code]...
I created a web site in ASP.NET 2005 and I am trying to add a web service located on another server. I can call manualy from IE the web service by pasting the URL below. I can type USER ID & PASSWORD and when I click INVOKE I get approval. When I try to add web refence to my web site for using web service I get error "The request failed with HTTP status 400: Bad request: request-line invalid." and I cannot add reference. [URL] What could be the problem?
have a web application hosted on Windows Server 2003 SP2 with IIS 6. I use ASP.net Web Forms and ASP.net AJAX.Some times, when clicking on a button to perform an action the web application does bot respond to the user.After debugging i have found that ErrorSys.WebForms.PageRequestManagerServerErrorException: An unknown error occurred while processing the request on the server. The status code returned from the server was: 413
When file is not found it correctly display 404.htm page but the issue is when I do Fiddler trace it returns 302 as HTTP status code.This is a big issue for search engine page indexing due to this lot of broken links still have been indexed recently because of this in my web site. how can I prevent returning 302 as HTTP status code for file not found errors and return 404 for file not found errors.I am using asp.net 3.5.
I have added a Web Reference in my IIS, I could not add that in my project.
I have tried with add Web reference -->Web services on the local machine-->a link will be displayed. "Ems_WebSecurity" under services. but once it is clicked it has to give the name in "Web services found at this URL"
but it is showing the following error:
There was an error downloading 'http://localhost/EMS_WebSecurity/Ems_WebSecurity.asmx'. The request failed with HTTP status 404: Object Not Found. There was an error downloading 'http://localhost/EMS_WebSecurity/Ems_WebSecurity.asmx/$metadata'. The request failed with HTTP status 404: Object Not
I hace created a webservice, that is on one server and then I created a web application on another server to consume that webservice. My web application uses threading. In my web application, I call the webservice and it returns me the response. Then my thread sleeps for 20 minutes and then it again calls webservice, but when i call the webservice second time , it fails. Here is the error and stack trace:-
Stack Trace:- at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall) at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters) at TransactionExport.LocalWebService.TransactionExportStaging.GetDays(String projCode) in C:inetpubwwwrootTransactionExportWeb ReferencesLocalWebServiceReference.vb:line 102 at TransactionExport.TransactionExport.LoadDays() in C:inetpubwwwrootTransactionExportExport.vb:line 267
I am trying to call webservice from my web application. The web application had integrated windows authentication. I've written custome principal class to do authorization. But when I give call to my web service with default credentials it gives me 'the request failed with http status 401 unauthorized.' error.
When I give call to my local webservice it is running fine (It also has integrated windows authentication) But when I add reference of same web service from QA server I am getting this error. Not sure what is happening. I also tried
I have created a page with a ReportViewer on it and have connected it to our reporting server. The problem is thou i get that error message: "The request failed with HTTP status 401: Unauthorized. "when i try to view it. It only works when i run the project in debug mode in CS 2008.Also my site is based on Integrated Windows authentication.
In the ASP.NET MVC site that I'm writing, I'm building a generic Error Action that is routed to by an HttpModule, following this tutorial. In this Action, I will return a View corresponding to the status code that is applied to the response inside the HttpModule (after doing this, the module transfers the request over to the Action in question).
That's all good, except that I want to implement caching. I don't want to use the OutputCache attribute without filtering/varying, because that would mean that the page would be cached once. I want the page to be cached once for every possible status code.
Is it possible to somehow filter/vary with OutputCacheAttribute's properties, so that each Response.StatusCode is cached separately?
I am getting an error as "The request failed with HTTP status 404: Object Not Found." earlier I used to get the output for this source code.
from the last two days i am scraching my head, i could not solve the problem, but i have traced the problem, that is when i tryed to open 'http://localhost' from my explorer i am not gettting the IIS help page.
I have a asp.net c# web application with contains reports in remote processing mode. I am using the report-viewer control to render the reports. When I run the application in debug mode, I'm able to view my reports however when I publish the application to a different server I get this error message:The request failed with HTTP status 401: Unauthorized.
My report server is on a different server than the location of my published web application. I have added new role assignment to my report server and also added to my web.config but the error persists. I think I am missing something in my aspx page for reportviewer.
I am connecting to remote server for web service using ASP.NET 3.5 web site. something like, [URL]. Remote server is providing digest authentication to access the web service. I dont have access to modify authentication on the remote server but I have an windows account on that server. If I try to Access service WSDL through programming I get the following error:
The request failed with HTTP status 401: Unauthorized. Same web service if I try to access through browser, [URL], it asks for user name and password. Entered windows account user name and password, still getting error: You are not authorized to view this page, HTTP Error 401.1 - Unauthorized. How to pass the digest authentication credentials to the web service through visual studio or any other programmatic method?
I created aMicrosoft.Reporting.WinForms.ReportViewer with a window application. It worked fine when I was in net A with domain A. My application is now moved to net B with domain B. However when I login to my computer I still login netA with domain A, userID and password for A. I then use a A/B switch to switch to net B to run my application running ReportViewer (no login directly to B). But when I run ReportViewer I got errors like below.
The request failed with HTTP status 401: Unauthorized.
when I access the webservices URL through browser ,I am able to access the URL ,If i use the webmethod in c# code the error message is diplaying like "The Requested Failed with HTTP Status 404:Not found".
I Have a specific set of HTTP response headers I'm trying to recreate in ASP.NET. Here is how it looks in Fiddler (Raw):
HTTP/1.1 200 OK Content-Length: 570746 Content-Type: audio/wav Last-Modified: Wed, 19 May 2010 00:44:38 GMT Accept-Ranges: bytes ETag: "379d676ecf6ca1:3178" Server: Microsoft-IIS/6.0 X-Powered-By: ASP.NET Date: Tue, 05 Oct 2010 18:35:18 GMT
Here is how it looks on the Headers tab (same data. Different view)
I am trying to recreate the same set of headers (different values of course) with code, on an ASP.NET page. The biggest problem is with the cache settings and the ETag. It usually shows some "private" or similar cache setting and no ETag value, even though I'm trying to set it explicitly with