Muszę użyć Server.MapPath()
do połączenia niektórych ścieżek plików, które przechowuję w web.config
.
Jednak ponieważ Server.MapPath()
opiera się na bieżącym HttpContext (myślę), nie mogę tego zrobić. Podczas próby użycia metody, mimo że jest „dostępna”, pojawia się następujący wyjątek:
Działanie serwera nie jest dostępne w tym kontekście.
Czy istnieje inna metoda, która może mapować katalog względny głównego katalogu WWW, na przykład ~/App_Data/
pełną ścieżkę fizyczną, na przykład C:\inetpub\wwwroot\project\App_data\
?
c#
asp.net
global-asax
server.mappath
application-start
John Bubriski
źródło
źródło
Użyj,
AppDomain.CurrentDomain.BaseDirectory
ponieważContext
może zwrócić wartość null !!źródło
W Global.asax użyj obiektu kontekstu :
context.Server.mappath ()
Kontekst umożliwia również dostęp do kolekcji sesji, obiektu żądania, obiektu odpowiedzi. Bardzo przydatne, gdy chcesz na przykład rejestrować błędy
źródło
Context
Global.asax nie ma gwarancji .Możesz spróbować HttpContext.Current.Server.MapPath („/”) - w ten sposób odwoływałem się do niego wcześniej w klasach.
źródło