wake-up-neo.com

Wie kann ich Server.MapPath () von global.asax verwenden?

Ich muss Server.MapPath() verwenden, um einen Dateipfad zu kombinieren, den ich im web.config Speichere.

Da sich Server.MapPath() jedoch auf den aktuellen HTTP-Kontext stützt (glaube ich), kann ich dies nicht tun. Beim Versuch, die Methode zu verwenden, wird die folgende Ausnahme angezeigt, obwohl sie "verfügbar" ist:

Der Serverbetrieb ist in diesem Zusammenhang nicht verfügbar.

Gibt es eine andere Methode, die ein relatives Webstammverzeichnis wie ~/App_Data/ Dem vollständigen physischen Pfad wie C:\inetpub\wwwroot\project\App_data\ Zuordnen kann?

117
John Bubriski

Sie könnten versuchen System.Web.Hosting.HostingEnvironment.MapPath () .

Kein HttpContext erforderlich.

285
Corbin March

Verwenden AppDomain.CurrentDomain.BaseDirectory weil Context null zurückgeben könnte !!

4
Kiran Banda

Verwenden Sie in Global.asax den Kontext :

context.Server.mappath ()

Im Kontext können Sie auch auf die Sitzungssammlung, das Anforderungsobjekt und das Antwortobjekt zugreifen. Sehr nützlich, wenn Sie beispielsweise Fehler protokollieren möchten

1
tekBlues