[c#] global.asax에서 Server.MapPath ()를 어떻게 사용할 수 있습니까?

Server.MapPath().NET Framework에 저장하는 일부 파일 경로를 결합하는 데 사용해야 합니다 web.config.

그러나 Server.MapPath()현재 HttpContext에 의존하기 때문에 (제 생각에) 이것을 할 수 없습니다. 방법을 사용하려고 할 때 “사용 가능”하더라도 다음 예외가 발생합니다.

이 컨텍스트에서는 서버 작업을 사용할 수 없습니다.

와 같은 ~/App_Data/전체 물리적 경로에 웹 루트 상대 디렉토리를 매핑 할 수있는 또 다른 방법이 C:\inetpub\wwwroot\project\App_data\있습니까?



답변

System.Web.Hosting.HostingEnvironment.MapPath ()를 시도 할 수 있습니다.

HttpContext가 필요하지 않습니다.


답변

null을 반환 할 수 AppDomain.CurrentDomain.BaseDirectory있기 때문에 사용하십시오 Context!!


답변

Global.asax에서 컨텍스트 개체를 사용 합니다.

context.Server.mappath ()

컨텍스트를 사용하면 세션 컬렉션, 요청 개체, 응답 개체에도 액세스 할 수 있습니다. 예를 들어 오류를 기록 할 때 매우 유용합니다.


답변

HttpContext.Current.Server.MapPath ( “/”)를 시도해 볼 수 있습니다. 이전에 클래스에서 참조했던 방법입니다.


답변