我如何知道我的应用程序当前托管的完整虚拟路径?例如:
http://www.mysite.com/myApp
或
http://www.mysite.com/myApp/mySubApp
我知道HttpRequest的应用程序路径,但它只返回我的应用程序当前托管的文件夹名称,但我如何获取初始部分?
我如何知道我的应用程序当前托管的完整虚拟路径?例如:
http://www.mysite.com/myApp
或
http://www.mysite.com/myApp/mySubApp
我知道HttpRequest的应用程序路径,但它只返回我的应用程序当前托管的文件夹名称,但我如何获取初始部分?
路径的域名部分实际上不是应用程序本身的属性,而是取决于请求的URL.您可能可以通过许多不同的主机名访问单个网站.要获取与current request关联的域名以及当前应用程序的虚拟路径,可以执行以下操作:
Request.Url.GetLeftPart(UriPartial.Authority) + Request.ApplicationPath
从技术上讲,"应用程序"是在IIS中定义的虚拟目录,Request.ApplicationPath
返回的正是这个目录.如果您想获取处理当前request的文件夹,可以这样做:
VirtualPathUtility.GetDirectory(Request.Path)
如果在IIS中没有定义为虚拟目录,ASP.NET不知道如何将您的子应用程序与更大的应用程序区分开来.在没有注册IIS的情况下,它只会将整个过程视为一个应用程序.