Wie kann ich Server.MapPath () von global.asax?
-
06-09-2019 - |
Frage
Ich brauche Server.MapPath()
zu verwenden, um einige Dateien Pfad zu kombinieren, die ich in den web.config
speichern.
Da jedoch Server.MapPath()
auf dem aktuellen Httpcontext beruht (glaube ich), ich bin nicht in der Lage, dies zu tun. Beim Versuch, die Methode zu verwenden, auch wenn seine „verfügbar“, ich die folgende Ausnahme erhalten:
Die Server-Operation ist in diesem Zusammenhang nicht zur Verfügung.
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\
?
Lösung
Sie könnten versuchen, System.Web.Hosting .HostingEnvironment.MapPath () .
Nein Httpcontext erforderlich.
Andere Tipps
Verwenden AppDomain.CurrentDomain.BaseDirectory
weil Context
null zurück könnte !!
Wenn in Global.asax, verwenden Sie die Kontext Objekt:
context.Server.mappath ()
Kontext können Sie auch die Sitzungssammlung zugreifen, das Request-Objekt, das Antwortobjekt. Sehr nützlich, wenn Sie Fehler protokollieren, zB
Sie könnten versuchen, HttpContext.Current.Server.MapPath ( "/") -. Das ist, wie ich es vorher in Klassen verwiesen habe