如何知道我的应用程序当前托管的完整虚拟路径?例如:
http://www.mysite.com/myApp
要么
http://www.mysite.com/myApp/mySubApp
解决方法
路径的域名部分不是真正的应用程序本身的属性,而是取决于请求的URL。您可以从许多不同的主机名访问单个Web站点。要获取与当前请求相关联的域名以及当前应用程序的虚拟路径,您可以执行以下操作:
Request.Url.GetLeftPart(UriPartial.Authority) + Request.ApplicationPath
技术上,“应用程序”是在IIS中定义的虚拟目录,并且Request.ApplicationPath正好返回。如果要获取处理当前请求的文件夹,可以执行以下操作:
VirtualPathUtility.GetDirectory(Request.Path)
ASP.NET不知道如何区分你的子应用程序从一个更大的应用程序,如果它没有定义为IIS中的虚拟目录。没有在IIS中注册,它只是将整个事情看作一个单一的应用程序。