ASP.NET에서 사이트의 절대 경로를 얻는 몇 가지 방법
VirtualPathUtility.ToAbsolute("~/")
HttpRuntime.AppDomainAppVirtualPath
Request.ApplicationPath
Page.ResolveUrl("~")
위 코드는 다음과 같이 생성됩니다. 웹 사이트에 액세스하면 다음과 같은 결과가 발생합니다.
VirtualPathUtility.ToAbsolute("~/")
=/
HttpRuntime.AppDomainAppVirtualPath
=/
Request.ApplicationPath
=/
Page.ResolveUrl("~")
=/
가상 디렉토리(http://localhost:806/web2/url.aspx) 액세스 시 결과는 다음과 같습니다.
VirtualPathUtility.ToAbsolute("~/")
=/web2/
HttpRuntime.AppDomainAppVirtualPath
=/web2
Request.ApplicationPath
=/web2
Page.ResolveUrl("~")
=/web2/
두 번째 방법과 세 번째 방법을 사용하면 처리를 해야 한다. 왜냐하면 사이트가 방문할 때는/끝으로 하고 가상 디렉터리로 방문할 때는/이 없기 때문에 한 번 더 판단해야 하기 때문에 좀 번거롭다.그러나 이러한 방법은 페이지에서 사용하는 데 아무런 문제가 없지만 Global의 ApplicationStart 이벤트에서 웹 사이트의 절대 경로를 얻으려면 앞의 두 가지 방법을 사용해야 합니다. 세 번째 방법을 사용하면 다음과 같은 오류가 보고됩니다. Request is not available in this context 따라서 첫 번째 두 가지 방법만 사용할 수 있습니다.예컨대
void Application_Start(object sender, EventArgs e)
{
System.IO.StreamWriter s = new System.IO.StreamWriter(HttpRuntime.AppDomainAppPath + "log.txt");
s.WriteLine(VirtualPathUtility.ToAbsolute("~/"));
s.WriteLine(HttpRuntime.AppDomainAppVirtualPath);
s.Close();
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
AS를 통한 Module 개발1. ModuleLoader 사용 2. IModuleInfo 사용 ASModuleOne 모듈...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.