Ich brauche Server.MapPath()
zu kombinieren einige Dateien Pfad, den ich in der web.config
speichern.Wie kann ich Server.MapPath() von global.asax verwenden?
Da jedoch Server.MapPath()
auf den aktuellen HttpContext beruht (glaube ich), kann ich dies nicht tun. Wenn ich versuche, die Methode zu verwenden, obwohl sie "verfügbar" ist, bekomme ich die folgende Ausnahme:
Server-Betrieb ist in diesem Zusammenhang nicht verfügbar.
Gibt es eine andere Methode, die ein Web-Root-Verzeichnis relatives wie ~/App_Data/
zum vollständigen physischen Pfad wie C:\inetpub\wwwroot\project\App_data\
abbilden?
Irgendwelche Vorbehalte zu dieser Technik? –
Nein. Wenn Sie Reflector starten, stellen Sie fest, dass Server.MapPath und Request.MapPath schließlich VirtualPath.MapPath aufrufen, wodurch schließlich HostingEnvironment.MapPath aufgerufen wird. Sie alle enden am selben Ort. HostingEnvironment.MapPath schneidet den mittleren Mann aus. –
+1 das reparierte ein Open-Source-Projekt, das für mich funktionierte, dann hörte gerade auf zu initialisieren, weil HttpContext.Current.Server dafür sprengte, dass es aus irgendeinem Grund keinen Zusammenhang hatte. Der Wechsel zu diesem Punkt bringt es zurück zu glattem Segeln. –