ASP.NET VirtualPathProvider mit Problemen mit statischen Dateien

8

Ich verwende IIS 7.5 unter Windows 7. Meine ASP.NET-Anwendung verwendet einen VirtualPathProvider. Die meisten Dateien (Aspx-Seiten) werden von meinem VirtualPathProvider zurückgegeben und gerendert. Statische Dateien (CSS / Bilder) sind nicht. Sie führen zu einem HTTP 404-Fehler, wenn ich versuche, direkt zu ihnen zu navigieren (oder wenn sie von meiner virtuellen ASPX-Seite referenziert werden)

Ich habe überprüft, dass meine web.config den richtigen Handler für statische Dateitypen registriert hat.

Was ist seltsam ist das:

  1. Wenn ich versuche, zu einer nicht virtuellen gif-Datei zu navigieren (eine Datei, die tatsächlich im Dateisystem unter dem Stamm der Website existiert), wird sie gerendert.

  2. Wenn ich WebDev in Visual Studio anstelle von IIS ausführe, werden die virtuellen gif-Dateien korrekt dargestellt.

  3. Im Debug-Modus kann ich in VirtualPathProvider.GetFile sehen, dass mein VirtualPathProvider eine vollständig gültige Instanz meiner virtuellen gif-Datei zurückgibt, bevor die Seite den 404-Fehler zurückgibt ... also weiß ich, dass mein VirtualPathProvider einwandfrei funktioniert .

HINWEIS, wenn ich IIS sage, meine ich nicht in einer implementierten Umgebung. Ich meine nur, dass ich die Projekteinstellungen so ändere, dass ich IIS statt WebDev verwende.

Irgendwelche Ideen?

Danke.

    
Jeff 07.08.2011, 19:23
quelle

1 Antwort

11

... und answer :

  

Das Problem, mit dem ich mich konfrontiert sehe, ist, dass selbst bei einer Platzhalterzuordnung zu ASP.NET meine statischen Dateien mit einem 404-Fehlercode enden, weil das Routing sie erfasst und die Anforderungen sendet an den MVC-Handler, und keine Route gefunden. Fehler.

     

Also, als eine Notiz für mich selbst (und jeden anderen, der etwas Ähnliches macht), hier ist, was ich gefunden habe, müssen Sie tun, um Ihren VPP statische Dateien bereitstellen zu lassen.

     

Zuerst müssen Sie die gewünschten statischen Dateitypen erhalten, die ASP.NET zugeordnet sind ...

    
Jeff 09.08.2011, 17:17
quelle