Wie Sie programmgesteuert festlegen Response.StatusCode anders als die 200 OK ASP.NET Anwendung und dienen, Inhalte auf client erfolgreich?

Einstellung Response.StatusCode = 404 dienen nicht Inhalte unter, weder IE8 noch Chrome? Es funktioniert im Mozilla aber ich finde es seltsam!

Tun, die einfachsten Dinge - leer asp.net web-Anwendung-Projekt mit dem leeren Default.aspx-Seite. Im Page_Load-Ereignis, verwenden Sie die folgende:

protected void Page_Load( object sender, EventArgs e )
{
    Response.StatusCode = 404;
}

Diese effektiv setzt den status-code der aktuellen Anforderung, 404, kein Zweifel. Beim Rendern unter IE8 oder Chrome, oder vielleicht einige andere Browser auch - habe ich noch nicht getestet, die eigentliche Seite nicht zeigen, bis überhaupt. Diese Browser zeigen Sie Ihre Standard-404-Fehler-Seiten (NICHT Standard-IIS custom-Fehler). Beispiel im IE8:

The webpage cannot be found 
 HTTP 404  
   Most likely causes:
There might be a typing error in the address.
If you clicked on a link, it may be out of date. ... and so on ...

Was ich wirklich tun wollen ist zwar dienen 404 Fehler-Seite mit 404 Fehler-code, die tatsächlich sagen, der browser oder crawler oder wer auch immer, dass diese Seite nicht existiert - nicht nur, um zu zeigen, einige fancy benutzerdefinierte Fehlermeldung mit status-Nachricht 200 OK.

Mit fiddler zeigt, dass ich bin eigentlich wirklich im Dienste der Anfrage, aber der browser ist vollkommen zu ignorieren?!

Meine Frage - wie kann ich die 404-status code und noch Rendern Inhalt der Seite? Beispiel - http://www.intel.com/invalidpage.wow. Mit fiddler zeigt, dass diese Seite wird serviert, mit 404 status-code.

InformationsquelleAutor der Frage Ivan Zlatanov | 2009-09-24

Schreibe einen Kommentar