2009-04-01 5 views
3

Je suis en train de créer un gestionnaire d'erreur personnalisé dans iis 7.Comment puis-je savoir quel chemin de requête est manquant dans un gestionnaire d'erreur 404 dans iis7?

web.config section httpErrors:

<httpErrors> 
    <remove statusCode="404" subStatusCode="-1" /> 
    <error statusCode="404" prefixLanguageFilePath="" path="/path/to/handlerwebservice" responseMode="ExecuteURL" /> 
</httpErrors> 

web.config HTTPHandler pour gérer l'erreur:

<add path="*/path/to/handlerwebservice"   verb="GET,HEAD"  type="WebServices.Image404Handler, WebServices"   validate="false" /> 

Image404Handler c Code # :

public void ProcessRequest(HttpContext context) 
{ 
    string requestpath; 
    if (context.Request.QueryString.AllKeys.Contains("aspxerrorpath")) 
    { 
     requestpath = context.Request.QueryString["aspxerrorpath"]; 
    } 
    else 
    { 
     requestpath = context.Request.Path; 
    } 

    // more code not really relevant here 
} 

Je n'arrive pas à trouver comment obtenir t Le chemin de la requête qui a provoqué le déclenchement de l'erreur 404. Dans IIS 6, Visual Studio 2008 utilise ce chemin est ajouté à aspxerrorpath dans la chaîne de requête.

Je n'arrive pas à faire fonctionner le débogage à distance, donc je demande ici si quelqu'un sait quoi faire.

+0

si (String.IsNullOrEmpty (demande [ "aspxerrorpath"]) ... – abatishchev

Répondre

4

J'ai moi-même trouvé une réponse.

Utilisation HttpСontext.Request.RawUrl au lieu de HttpСontext.Request.Path

Questions connexes