2010-06-27 5 views
9

Ich habe den Code einer Website von jemand anderem übernommen, um zu beenden und habe das Problem, dass jedes Mal, wenn ich eine Seite lade, bekomme ich eine "Datei existiert nicht" Ausnahme gefangen im Application_Error-Handler in meiner Global.asax-Datei.Datei existiert nicht Ausnahme in VS2010

Ich war neugierig, was es war, also habe versucht, brandneue Lösungen mit einer Website und Web-Anwendung, mit und ohne eine Masterseite und eine einzelne ASPX-Seite - beide hatten das gleiche Problem.

Dies ist mit VS2010 und .NET 3.5, unter Windows 7 64-Bit.

Irgendwelche Ideen bitte? Der Stack-Trace sagt mir absolut nichts und die Tatsache, dass ich es mit neuen Projekten bekomme, ist merkwürdig.

Ausnahme-Stack-Trace:

at System.Web.StaticFileHandler.GetFileInfo(String virtualPathWithPathInfo, String physicalPath, HttpResponse response) 
at System.Web.StaticFileHandler.ProcessRequestInternal(HttpContext context) 
at System.Web.DefaultHttpHandler.BeginProcessRequest(HttpContext context, AsyncCallback callback, Object state) 
at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() 
at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) 
+1

meine erste Schätzung ... http: //webdesign.about.com/od/favicon/f/blfaqfavicon4.htm – agradl

Antwort

1

Ich kam nie auf den Grund dieser traurig und eine überfällige Wiederherstellung meines Computers sortiert es.

3

Was ist der Dateiname in der Ausnahme? Wenn der Dateiname oder der Pfad verschleiert ist, haben Sie wahrscheinlich eine Beschädigung in temporären ASP.NET-Dateien. Versuchen Sie "clean solution" und "rebuild solution" und führen Sie es erneut aus.

Andernfalls müssen Sie weitere Informationen bereitstellen, einschließlich der vollständigen Ausnahmebedingungsnachricht, nicht nur der Aufrufliste. Tritt dies auf der Standardseite der Site auf? Ist das Webprojekt als Startprojekt ausgewählt? Tritt dies im Visual Studio-Webserver oder IIS auf?

+0

Das Problem ist, gibt es keinen Dateinamen oder zusätzliche Informationen in der Ausnahme. Ich habe alles gepostet, was mir leid tut. Es sagt mir nichts nützliches. Wenn ich alle Ausnahmen auf "on" bringe, bekomme ich nichts - es trifft immernoch nur den Exception-Handler in der Global.asax-Datei und nirgendwo anders. Ich habe auch geschlossen Visual Studio und erstellen zwei brandneue Test-Lösungen, wie erwähnt, so sauber/Wiederaufbau wird nicht helfen. – Michael

+0

OK, das gilt als ziemlich seltsam. Der Aufruf-Stack teilt mir mit, dass Sie sich in der ASP.NET-Pipeline befinden und eingerichtet ist, eine Seite zu laden und zu verarbeiten, aber (wahrscheinlich) keine zu ladende Seite zu haben. Es kann sein, dass die Site nicht weiß, was die Standardseite ist. Vielleicht können Sie also versuchen, eine Seite auszuwählen und sie zur Standard-Startseite zu machen. Oder klicken Sie mit der in Visual Studio geöffneten Seite einfach mit der rechten Maustaste auf die Seite im Bearbeitungsfenster und wählen Sie Im Browser anzeigen aus. Dies würde Ihnen sagen, ob es ein Problem mit der Seite gibt. –

+0

Versucht, dass danke. Es passiert mit jeder Seite nur bei Verwendung von Visual Studio. Sobald ich auf meinem Webserver (Windows Server 2003 R2) bereitstellen, ist es in Ordnung und keine Fehler. Im Studio gibt es eine Standard-Seiten-Set, so wird es nicht sein. Odd - klingt wie ein Problem mit VS2010 - hat dies nicht mit VS2008 getan. – Michael

2

Ich erkenne meinen Fehler in Application_Error innerhalb von gloal.asax Ich bekomme auch Request.Url.ToString(), dies würde Ihnen die Täter-Ressource geben. Zum Beispiel habe ich in meiner App festgestellt, dass der Application_Error sogar über das favicon.ico klagt, und auch wenn Sie einige Dateien haben, die Sie möglicherweise von Ihrem CSS referenzieren, würde es vom Application_Error-Ereignis abgefangen werden.

tatsächlich, lesen Sie in diesem Blog zum Beispiel, spricht über das gleiche Problem und mit der Request.Url zu entdecken, was die Ressource in Frage ist. Dies sollte helfen http://dotbert.loedeman.nl/httpexception-file-does-not-exist

9

Der Trick herauszufinden, welche Datei nicht existiert ist, den folgenden Code in der Application_Error Methode zu verwenden.

protected void Application_Error(Object sender, EventArgs e) 
{ 
    Exception ex = Server.GetLastError().GetBaseException(); 
    string file = HttpContext.Current.Request.Url.ToString(); 
    string page = HttpContext.Current.Request.UrlReferrer.ToString(); 
} 

Dadurch wird der Name der fehlenden Datei und die ursprüngliche Seite, von der die Anfrage kam, abgerufen.

+1

Ich habe diesen Fehler einmal am Tag beim ersten Start der App im Debug-Modus bekommen, und mit dieser Antwort habe ich herausgefunden, dass es eine Anfrage für 'favicon.ico' war, obwohl ich Favicon zum' 'hinzugefügt habe IgnorierenRoutes'. Irgendwelche Ideen, wie man es ganz loswerden kann, außer dem Hinzufügen eines favicon.ico zu der Lösung? – Webbie4

+0

@ Webbie4: Nein, tut mir leid. Ich habe keine Ahnung. –

1

Ich löste dies für meine Situation ... stellte sich heraus, dass die Projekteigenschaften wieder auf "Aktuelle Seite verwenden" zurückgesetzt wurden (in VS 2010 - Projekteigenschaften | Startoptionen | Startaktion).

Die seltsame Sache ist, dass ich die Startoptionen auf "Spezifische Seite:" - so irgendwo entlang der Linie VS 2010 Spur von ihm zurückgesetzt hatte und zurück zu "Aktuelle Seite verwenden".

Rob.

Verwandte Themen