Ich muss verwenden Server.MapPath()
, um einige Dateipfade zu kombinieren, die ich im speichere web.config
.
Da Server.MapPath()
ich mich jedoch auf den aktuellen HttpContext stütze (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/
den vollständigen physischen Pfad wie z C:\inetpub\wwwroot\project\App_data\
.
c#
asp.net
global-asax
server.mappath
application-start
John Bubriski
quelle
quelle
Verwenden Sie,
AppDomain.CurrentDomain.BaseDirectory
weilContext
möglicherweise null zurückgegeben wird !!quelle
Wenn in Global.asax, verwenden Sie das Kontextobjekt:
context.Server.mappath ()
Mit Kontext können Sie auch auf die Sitzungssammlung, das Anforderungsobjekt und das Antwortobjekt zugreifen. Sehr nützlich, wenn Sie beispielsweise Fehler protokollieren möchten
quelle
Context
In Global.asax gibt es keine Garantie .Sie könnten HttpContext.Current.Server.MapPath ("/") ausprobieren - so habe ich es zuvor in Klassen referenziert.
quelle