11
votes

Pourquoi définir CustomErrors dans Web.config ne fonctionne pas dans ce cas?

dans mon site Web ASP.NET 3.5 publié dans le fournisseur d'hébergement partagé, j'ai configuré mon fichier web.config comme ceci: xxx pré>

si l'utilisateur demande des pages qui ne requiert pas Existe (comme "www.example.com/notexistpage.aspx"), l'utilisateur sera redirigé vers la page Filenotfound.htm comme nous nous attendons. p>

Mais si l'utilisateur demande une adresse comme: "www.example. Com / NotexistDirectory "Sans .aspx Extension, l'utilisateur rencontrera la page d'erreur IIS 7.5: P>

erreur http 404.0 - pas trouvé le la ressource que vous recherchez a été enlevé, a changé son nom, ou est temporairement indisponible. P> BlockQuote>

Informations d'erreur distalées: P>

Module  IIS Web Core
Notification    MapRequestHandler
Handler StaticFile
Error Code  0x80070002

Requested URL   http://www.example.com:80/NotExistDirectory
Physical Path   D:\Websites\example\example.com\wwwroot\NotExistDirectory
Logon Method    Anonymous
Logon User  Anonymous


0 commentaires

5 Réponses :


1
votes

Ceci est parce que le module ASP.NET est configuré pour gérer certaines extensions de fichier. IIS détermine que .aspx doit être géré par le module ASP.NET, puis la section CustomErrors dans le web.config (et bien web.config lui-même) commence.

Étant donné que vous avez demandé une page non configurée pour ASP.NET, IIS le gère seul sans passer la demande sur.


1 commentaires

BRAINTROVE.com/article/46/page/2 - essayez cet article que expliquera comment configurer des pages personnalisées pour IIS. Vous voudrez peut-être aussi vous rafraîchir sur le pipeline IIS.



0
votes

Pour tout autre fichier autre que .aspx, vous pouvez le configurer dans IIS: http://www.xefteri.com/articles/show.cfm?id=11


1 commentaires

Le lien est mort. En outre, veuillez élaborer vos réponses, ne pas simplement publier un lien.



12
votes

@ Mrostafa: J'ai fait face au même problème. J'ai découvert qu'il peut être résolu en ajoutant ce qui suit au fichier web.config: xxx


3 commentaires

Merci, cela a travaillé pour moi, j'étais manquant errorormode = "personnalisé"


Pour les nouveaux lecteurs, enfin j'ai trouvé la raison actuelle et la solution complète, vous pouvez jeter un coup d'œil à ma réponse.


Ne fonctionne pas, je reçois cette page xxx.com ne peut pas être trouvée Aucune page Web n'a été trouvée pour l'adresse Web: https: //xxx.com/aaaaa HTTP erreur 404



0
votes

Premièrement, l'URL de répertoire doit poser la fin de la barre oblique, sinon son seul fichier sans extension. www.mysite.com/notexistdirectory/fr/> Deuxièmement, l'ASP.NET IIS Module est un gestionnaire pour les types ASP MIME uniquement, alors le répertoire est restes pour serveur Web. Troisièmement, CustomError fait partie de System.Web fait partie de la configuration ASP.NET
et httperror fait partie de System.webebserver fait partie de la configuration IIS.
En supposant que les valeurs par défaut du module HTTP dans la configuration IIS, HTTPERROR fonctionnera avec une erreur personnalisée pour le répertoire non existant.


0 commentaires

3
votes

C'est intéressant, après quelques années, je suis soudainement compris ce que c'est le problème.

Grâce à la solution @David, mais la raison et la solution complète est aussi ci-dessous: p>

en définissant CustomErrors CODE> MODE sur " sur CODE>" Ça ne fonctionne que lorsque nous obtenons une exception dans l'application ASP.NET, tandis que lorsque nous essayons d'atteindre inexactingdirectory code> ou NotexsitingstaticReseSouce Code>, IIS Render 404 Erreur et il n'atteint pas ASP.NET Runtime et Serverd par IIS directement. P>

Nous devons donc ajouter configurateur pour IIS comme ci-dessous dans Web.config: P >

  <system.webServer>
    <httpErrors errorMode="Custom">
      <remove statusCode="404"/>
      <error statusCode="404" path="~/404.html" responseMode="File" />
    </httpErrors>
  <system.webServer>


0 commentaires