Microsoft Web API : Server.MapPath를 어떻게 수행합니까?
이후 마이크로 소프트 웹 API가 아닌 MVC , 당신은 이런 식으로 뭔가를 할 수 없습니다
var a = Request.MapPath("~");
이건
var b = Server.MapPath("~");
System.Web
네임 스페이스가 아닌 네임 스페이스 아래에 있기 때문 System.Web.Http
입니다.
그렇다면 Web API 에서 상대 서버 경로를 어떻게 알 수 있습니까?
나는 MVC 에서 이와 같은 일을했다 .
var myFile = Request.MapPath("~/Content/pics/" + filename);
디스크의 절대 경로를 알려줄 것입니다.
"C:\inetpub\wwwroot\myWebFolder\Content\pics\mypic.jpg"
HostingEnvironment.MapPath 를 사용할 수 없는 컨텍스트 (예 : 정적 메서드) System.Web
와 같은 컨텍스트에서 사용할 수 있습니다 HttpContext.Current
.
var mappedPath = System.Web.Hosting.HostingEnvironment.MapPath("~/SomePath");
Server.MapPath와 HostingEnvironment.MapPath의 차이점은 무엇입니까?를 참조하십시오 .
string root = HttpContext.Current.Server.MapPath("~/App_Data");
이 문제를 우연히 해결하는 사람들을 제외하고 HostingEnvironment 호출을 사용하여 테스트 수준을 실행하는 좋은 방법은 ~ / example /에 매핑 된 UNC 공유에 액세스하는 경우입니다. IIS-Express 문제 :
#if DEBUG
var fs = new FileStream(@"\\example\file",FileMode.Open, FileAccess.Read);
#else
var fs = new FileStream(HostingEnvironment.MapPath("~/example/file"), FileMode.Open, FileAccess.Read);
#endif
파일에서 로컬로 테스트 할 권한이 있지만 프로덕션 환경에서 한 번 env 매핑이 필요한 경우 도움이됩니다.
나는 당신이 제공 한 상황에서 말할 수 있지만, 당신은 단지 응용 프로그램 시작시 할 필요가 그것의 어떤 경우에, 당신은 여전히 사용할 수 있습니다 Server.MapPath
에 WebApiHttpApplication
; 예; Application_Start()
.
나는 당신의 직접적인 질문에 대답하고 있습니다. 이미 언급 한 HostingEnvironment.MapPath()
것이 아마도 선호되는 솔루션 일 것입니다.
이후 Server.MapPath()
웹 API 광고 (비누 또는 REST) 내에 존재하지 않습니다, 당신은 웹 서버의 상황에 홈 디렉토리에 로컬 - 상대적인을 표시해야합니다. 가장 쉬운 방법은 다음과 같습니다.
string AppContext.BaseDirectory { get;}
그런 다음 이것을 사용하여 경로를 연결하여 상대 경로를 파일에 매핑 할 수 있습니다.
참고 : 문자열 경로는 mvc \
와 같지 않습니다 /
.
전의:
System.IO.File.Exists($"{**AppContext.BaseDirectory**}\\\\Content\\\\pics\\\\{filename}");
이것이 당신의 예제에서 사운드 경로라는 사실을 리턴합니다.
선택한 답변이 Web API 응용 프로그램에서 작동하지 않았습니다. 나는 사용해야했다
System.Web.HttpRuntime.AppDomainAppPath
당신은 다음과 같이 시도 할 수 있습니다 :
var path = "~ / Image / test.png"; System.Web.Hosting.HostingEnvironment.MapPath (@ + 경로)
참고 URL : https://stackoverflow.com/questions/16557122/microsoft-web-api-how-do-you-do-a-server-mappath
'IT story' 카테고리의 다른 글
Gradle에 특정 JDK 버전을 사용하도록하려면 어떻게해야합니까? (0) | 2020.04.17 |
---|---|
phtml이란 무엇이며 언제 .php 대신 .phtml 확장자를 사용해야합니까? (0) | 2020.04.17 |
파이썬에서 0의 목록 (0) | 2020.04.17 |
C ++에서 float의 round () (0) | 2020.04.17 |
앱이 제거 될 때 키 체인 항목 삭제 (0) | 2020.04.17 |