Comment définir par programmation de la Réponse.StatusCode différents de 200 OK dans ASP.NET d'Application et de servir le contenu de client avec succès?
Réglage Response.StatusCode = 404
ne sert pas de contenu ni sous IE8, ni Chrome? Il fonctionne sous Mozilla mais je trouve ça étrange!
Faire les choses les plus simples - vide asp.net projet d'application web avec vide par Défaut.page aspx. Dans l'événement Page_Load utiliser les éléments suivants:
protected void Page_Load( object sender, EventArgs e )
{
Response.StatusCode = 404;
}
Effectivement cela définit le code d'état de la requête courante à 404, aucun doute à ce sujet. Lors du rendu sous IE8 ou Chrome, ou peut-être certains autres navigateurs aussi bien - je n'ai pas testé, la page ne veut pas s'afficher du tout. Ces navigateurs affichent par défaut erreur 404 pages (IIS par défaut, les messages d'erreur personnalisés). Exemple dans 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 ...
Ce que je veux vraiment faire est de servir de page d'erreur 404 avec erreur 404 code, qui fait dire au navigateur ou au robot, ou à quiconque que cette page n'existe pas - pas seulement pour montrer un peu de fantaisie message d'erreur personnalisé avec le message d'état de 200 OK.
À l'aide de fiddler montre que je suis en fait vraiment servir la demande, mais le navigateur est totalement l'ignorer?!
Ma question - comment puis-je mettre code d'état 404 et toujours de rendre le contenu de la page? Exemple - http://www.intel.com/invalidpage.wow. À l'aide de fiddler montre que cette page est servi avec code d'état 404.
OriginalL'auteur Ivan Zlatanov | 2009-09-24
Vous devez vous connecter pour publier un commentaire.
Par défaut IE va montrer la page d'erreur personnalisée si la réponse de l'erreur est inférieure à une valeur paramétrée. Je crois que le montant est de 512 octets, mais je vais essayer de trouver une confirmation sur ce point. Donc, tout ce que vous devez faire est de mettre plus de contenu dans votre réponse.
EDIT: Cette blog décrit les limites. L'un des commentaires montre les paramètres de clé de registre pour changer ces valeurs. La clé est:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\MAIN\ErrorThresholds
Une grande aide! Exactement la chose que je cherchais à comprendre. Merci.
votre lien est rompu, essayez de ceci à la place. Il lit
http://weblogs.asp.net/scottgu/archive/2006/04/09/App_5F00_Offline.htm-and-working-around-the-_2200_IE-Friendly-Errors_2200_-feature.aspx
qui la SE Moteur essaie de les mettre en italique, alors j'ai utilisé un raccourcisseur comme solution de contournement.OriginalL'auteur Daniel
Vous ne servez pas le contenu, vous pouvez définir une page d'erreur personnalisée sur le web, au niveau du serveur (IIS) ou dans le web.config dans le cas de asp.net
OriginalL'auteur Rich