2009-08-12 14 views
1

Je vais avoir des problèmes avec la manipulation URLS qui n'existent pas ...Gestion des erreurs URLS qui n'existent pas

Dans mon environnement de développement, je naviguées http://localhost:XXXX/FakeLocation et attraperait le HttpException et le manipuler correctement.

Lorsque je suis déployé sur mon site de production, j'obtiens une erreur 404 lorsque je navigue vers http://MyProductionURL/FakeLocation. Comment puis-je faire en sorte que l'emplacement de production lance l'exception HttpException pour que mon code puisse le gérer de la même manière que dans mon environnement de développement?

+0

Pouvez-vous nous dire ce que vous utilisez pour héberger en production et en développement? D'après votre description, je suppose que c'est le serveur web intégré de Visual Studio sur les dev et IIS (quelle version?) En live. Pouvez-vous me confirmer ou me corriger? –

+0

Vous avez raison. Prod is IIS 6. –

Répondre

0

Vous devez probablement configurer IIS sur l'emplacement de production. La chose la plus simple que vous pouvez probablement faire est

  1. Allez dans le Panneau de configuration, et sous Outils d'administration, ouvrez Internet Information Services (IIS).
  2. Faites un clic droit sur votre site web pour afficher les propriétés. Accédez à l'onglet Erreurs personnalisées
  3. Sélectionnez l'erreur 404 et modifiez-y les propriétés.
  4. Modifiez le type de message en URL.
  5. Définissez l'URL de la page vers laquelle vous souhaitez les rediriger.
0

vous pouvez le faire dans le nœud erreurs personnalisées du web.config

<configuration> 
    <system.web> 
    <customErrors defaultRedirect="GenericError.htm" 
        mode="RemoteOnly"> 
     <error statusCode="500" 
      redirect="InternalError.htm"/> 
    </customErrors> 
    </system.web> 
</configuration> 

Msdn Reference

1

ASP.NET ne traitera que les extensions de fichiers enregistrées dans IIS. Par conséquent, si la page était foo.aspx, ASP.NET renvoie par défaut la page 404 définie dans le fichier web.config. Et par défaut, 404 pour foo.xyz sera géré par IIS car IIS gère tout ce qui n'a pas de mappage.

Cette page montre comment set up wildcard mapping pour que toutes les demandes, quelle que soit l'extension, soient gérées par asp.net.

Questions connexes