我如何知道我的应用程序当前托管的完整虚拟路径?例如:

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的情况下,它只会将整个过程视为一个应用程序.

Asp.net相关问答推荐

将 Response.Headers.Add 替换为方法属性decorator

为什么 @Html.EditorFor 和 @Html.PasswordFor 在 MVC 中创建不同的样式框?

Web 部署工具 2.1 和 Web 部署 3.5 有什么区别?从 VS 2010 部署需要哪一个?

在正则表达式中允许 -(破折号)

ASP.NET @Register 与 @Reference

ASP.NET Web 应用程序 (.NET Framework) 与 ASP.NET Core Web 应用程序 (.NET Framework) 之间的差异

如何从以特定名称开头的 appsettings 键中获取所有值并将其传递给任何数组?

如何从 asp:Repeater 循环遍历项目模板中的项目?

相当于服务器端的 ASP.NET 包括

无法使用单例Microsoft.AspNetCore.Hosting.Internal.HostedServiceExecutor中的范围服务MyDbContext

在 Asp.net mvc5 中使用用户名而不是邮箱作为身份

.Net Standard 2.0 类库是否有通用配置文件?

使用 JObject 所需的库名称是什么?

为应用程序池Classic .NET AppPool提供服务的进程与 Windows 进程激活服务发生了致命的通信错误

使用 Moq 验证活动注册

会员生成密码 仅限字母数字密码?

避免将重复元素添加到列表 C#

ASP.Net 错误:应用程序池的标识无效

在 Asp.Net MVC 5 中获取登录用户的用户 ID

DataTable 不包含 AsEnumerable 的定义