3 Stimmen

Wie kann ich herausfinden, welcher Anfragepfad in einem 404-Fehler-Handler in iis7 fehlt?

Ich versuche, einen benutzerdefinierten Fehler-Handler in iis 7 zu erstellen.

web.config Abschnitt httpErrors:

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

web.config httpHandler zur Fehlerbehandlung:

<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
}

Ich kann nicht herausfinden, wie ich den Pfad der Anforderung, die den 404-Fehler ausgelöst hat, ermitteln kann. In IIS 6, dass Visual Studio 2008 verwendet dieser Pfad zu aspxerrorpath in der Querystring hinzugefügt wird.

Ich kann das Remote-Debugging nicht zum Laufen bringen, also frage ich hier, ob jemand weiß, was zu tun ist.

4voto

DivineGod Punkte 118

Ich habe selbst eine Antwort gefunden.

Utilice Httpontext.Request.RawUrl 代わりに Httpontext.Request.Path

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X