Server.MapPath와 HostingEnvironment.MapPath의 차이점은 무엇입니까? 파일 경로를 매핑하는

Server.MapPath()와 사이에 차이가 HostingEnvironment.MapPath()있습니까? 에 Server.MapPath()비해 어떤 장점이 HostingEnvironment.MapPath()있습니까?

내 원래 문제는 파일 HttpContext이없고 Server변수 Global.asax를 내 메소드에 전달할 수없는 경우 서버의 파일 경로를 매핑하는 것이 었습니다 .

HostingEnvironment.MapPath()필요하지 않기 때문에 대신 사용 했습니다 HttpContext. 이 두 가지 방법으로 다른 결과를 얻을 수있는 상황이 있습니까?



답변

Server.MapPath()결국을 호출 HostingEnvironment.MapPath()하지만 VirtualPath특정 옵션 으로 객체를 만듭니다 .

VirtualPath전달 된 객체 HostingEnvironment.MapPath()는 다음과 같이 구성됩니다.

VirtualPath.Create(path, VirtualPathOptions.AllowAllPath|VirtualPathOptions.AllowNull);

편집 : 실제로, 유일한 차이점은에 null을 전달할 수 Server.MapPath()있지만HostingEnvironment.MapPath()


답변

Server.MapPath()필요합니다 HttpContext. HostingEnvironment.MapPath하지 않습니다.