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\?

abbildet
War es hilfreich?

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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top