2011-09-06 2 views
2

Je rencontre un problème avec mon site:Pourquoi certaines pages ne fonctionnent-elles pas avec des erreurs http personnalisées dans asp.net?

Les erreurs personnalisées ne fonctionnent pas pour moi. Cela devrait rediriger les erreurs générales vers une page, et 404 erreurs vers une autre. Cela fonctionne localement mais pas dans l'environnement hébergé.

<customErrors defaultRedirect="GeneralError.aspx" mode="on"> 
    <error statusCode="404" redirect="404Error.aspx" /> 
</customErrors> 

Edit: Ok je l'ai testé la chose d'erreur un peu plus, et il semble fonctionner pour les pages comme:.

www [domaine] .com/doesntexist.aspx

mais pas

www. [domaine] .com/doesntexist

Il ne fonctionne que si je mets .aspx là. Edit: quelqu'un sait comment je peux le faire pour que cela fonctionne pour les deux instances?

+4

Je vous recommande de poster ce que deux questions distinctes, car ils sont probablement deux réponses distinctes. Ils ne semblent pas avoir quelque chose à faire l'un avec l'autre, sauf le fait qu'ils vous arrivent tous les deux, ce qui n'est pas pertinent. –

+0

Mike je sais qu'ils sont hors de propos mais ils sont tous deux des questions simples, c'est pourquoi je les mets ici. – TheGateKeeper

+0

"Les requêtes pour les pages gérées qui n'existent pas (c'est-à-dire pagenotfound.aspx) sont redirigées vers 404error.aspx?" Cela devrait être fait localement. – TheGateKeeper

Répondre

4

Ceci a à voir avec votre configuration et la version d'IIS que votre hôte est en train d'utiliser. Dans les versions d'IIS antérieures à 7, ou si vous exécutez IIS 7 avec le "pipeline classique", il existe en réalité deux canaux que les requêtes http vont. On gère les requêtes .net avec ASP.net, et l'autre pipeline va vers IIS. (c'est-à-dire que ASPX va à asp.net et .jpg va à IIS)

Dans votre cas, les pages inexistantes vont à IIS, ceci ne correspond pas à votre configuration asp.net spécifiée. Je parie que si vous tapez www. [Domain] .com/doesntexist.jpg, il ne vous sera pas envoyé sur la page personnalisée, mais si vous tapez www. [Domain] .com/doesntexist.aspx, il le fera.

Sp il existe plusieurs solutions basées sur quelle version si vous avez IIS. Si votre hôte utilise IIS7, vous pouvez exécuter le site avec le Integrated Pipeline, ce qui signifie que toutes les demandes passeront par ASP.net et que la configuration s'appliquera. Si vous n'exécutez pas IIS, vous ne pouvez résoudre ce problème que par specifying the custom error codes in IIS itself. Si c'est le cas, j'espère que votre hôte le permettra.

Une autre possibilité pour IIS6 serait de créer des gestionnaires personnalisés pour les pages et fichiers non .net, et de les forcer à router vers asp.net, alors votre configuration s'appliquerait. Cela ne serait pas souhaitable car cela pourrait devenir un cauchemar de maintenance et un code/configuration supplémentaire.

Questions connexes SO:

IIS overriding custom 404 error page in ASP.NET

How to get Custom Error Pages working for Classic ASP with IIS 7 Integrated Pipeline

Site not redirecting to Default Document in Classic pipeline mode

+0

Il se penche sur cela plus demain. – TheGateKeeper

+0

Quelle est l'erreur? –

+0

Je viens de vérifier, et mon hébergement utilise IIS7. J'ai fait plus de travail et j'ai fait fonctionner mon site web en mode pipeline intégré. Mais pour une raison quelconque, cela ne fonctionne toujours pas. Je pensais que le mode pipeline intégré faisait passer toutes les requêtes par asp.net? Alors pourquoi redirige-t-on et l'autre envoie l'erreur générique? Btw, je dois encore apprendre sur IIS, scince je suis juste un débutant je sais seulement un peu de asp.net et css, c'est pourquoi je ne sais pas ces choses :) – TheGateKeeper

-1

Mozilla Firefox sometimes has a caching issue with favicons. Essayez de naviguer votre navigateur directement dans le fichier: http://example.com/favicon.ico. Cela va le charger dans le cache de Firefox. Fermez le navigateur et rechargez votre site hébergé.

Vérifiez les paramètres IIS de votre fournisseur d'hébergement pour les erreurs 404. Vérifiez la FAQ de votre fournisseur d'hébergement pour les paramètres IIS et 404. Ils peuvent interdire la configuration de web.config.

+0

Est-ce que cela se voit pour vous? – TheGateKeeper

+0

Est-ce que ce spectacle pour moi? Il n'y a aucune indication sur la façon d'accéder à votre site hébergé. Wierd .. quand je passe en mode pipeline intégré, le site s'arrête de fonctionner! –

+0

le favicon, celui-ci http://www.vittoriosastarsnursery.com/favicon.ico .... – TheGateKeeper

Questions connexes