ASP.NET编程取得网站绝对路径

当以网站的方式访问时,结果以下: 

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 的 Application_Start 事件里须要获得网站的绝对路径,则须要使用前面2种方法,若是使用第三种方法,则会报告以下的错误:
Request is not available in this context 
因此,只能采起头2种方法。例如
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(); 
相关文章
相关标签/搜索