Problembehandlung bei "System.Web.HttpException (0x80004005): Datei existiert nicht"?

8

Entschuldigung, wenn dies auf dieser Seite bereits beantwortet wurde, habe ich gesucht, aber dieses genaue Szenario nicht gefunden.

Ich füge log4net zu einem WCF-Dienst hinzu. Ich habe im Ereignis Application_Error einen Handler hinzugefügt, der bei jeder Anfrage den Fehler Datei nicht gefunden abfängt.

Ich habe das mit Websites gesehen, und normalerweise kann der Fehler darauf zurückgeführt werden, dass es keine "favicon" -Datei im Stammverzeichnis oder ein fehlendes Bild gibt, auf das in einem css-Stylesheet verwiesen wird.

Dies ist jedoch ein WCF-Dienst, es gibt kein CSS-Stylesheet, und das Hinzufügen eines Favicons zum Stamm löste das Problem nicht.

Hat jemand anderes eine gute Möglichkeit, dies zu beheben?

Einige Hinweise:

  • Ich habe das noch nicht auf dem echten IIS-Server implementiert, ich benutze es lokal.
  • Der Fehler tritt nicht auf, wenn ich in Visual Studio in DEBUG ausgeführt werde, nur wenn ich über einen Webbrowser (IE oder Chrome) auf den Dienst zugreife
  • Ich habe der Fehlermeldung die URL und den Dateipfad hinzugefügt, und das sind sie:

    URL: Ссылка

    Dateipfad: /

    Fehler: System.Web.HttpException (0x80004005): Datei existiert nicht.

Bearbeiten: Die oben genannten Werte werden in der protokollierten Ausnahme angezeigt:

%Vor%

Jede Hilfe würde sehr geschätzt werden.

    
camainc 27.01.2011, 16:42
quelle

1 Antwort

6

Der Grund ist wahrscheinlich, dass der Dienst nicht angegeben wurde. Wenn ein Webserver (der lokale Entwickler ebenfalls) eine Anfrage für einen Ordner erhält, sucht er in diesem Ordner nach der Standardseite (normalerweise genannt: index.htm, index.html, default.asp, default.aspx, usw.) und (sofern Sie nicht eine REST-basierte Dienstbeschreibung verwenden). Wenn Sie von VS starten, wird Sie das Debug direkt zum eigentlichen Dienst führen.

In diesem Fall müssen Sie, da Sie einen Service erstellt haben, den Standort des genauen Service angeben, z. B. http://localhost:3994/service.svc .

Außerdem: Wenn Sie eine Debugsitzung starten und dann die URL in http://localhost:3994/ ändern, sollten Sie in der Lage sein zu überprüfen, ob dies beim Debugger der Fall ist.

    
David McEwing 27.01.2011, 19:29
quelle

Tags und Links