c# - 覆盖应用程序根 URL 的真正作用是什么?

标签 c# asp.net iis visual-studio-2015 virtual-directory

在整个互联网上我唯一能找到解释的地方是 MSDN :

Specifies an alternative path for the application root URL. Use this option if the Web application root is not the root of your project.

来自 here我知道“应用程序根”是在 ASP.NET 中使用波浪号时检索的路径。所以我希望如果我转到项目的属性 - Web - “覆盖应用程序根目录”并指定另一个 url,则波浪号将映射到该 url。

但事实并非如此。例如我的网站在一个虚拟目录上 - http://localhost/WebApplication1 在“Override application root”上,我尝试指定 http://localhost/WebApplication2http://localhosthttp://WebApplication2(它们都存在于我的本地 IIS 上)。现在当我写

Response.Redirect("~/test2/login");

我希望它将我重定向到 http://localhost/WebApplication2/test2/login。 但它会将我重定向到 http://localhost/WebApplication1/test2/login 就好像我没有覆盖“应用程序根目录”一样。

那么这个功能到底想做什么呢?或者可能它不起作用是因为我遗漏了一些东西并且没有正确定义它?

最佳答案

覆盖应用程序根 URL 不会更改应用程序根在您的应用程序中的位置。它更改用于到达应用程序根目录的 URL。因为 IIS 会执行一些主机名验证,所以它用于指定是否要通过 localhost:[PORT] 以外的方式访问您的应用程序。

例如,如果您将它覆盖到 www.myapp.com,您可以通过将其添加到您的主机文件来访问您的应用程序:

127.0.0.1     www.myapp.com

如果您要让远程设备(计算机上的虚拟机或网络上的移动设备)可以使用您的应用程序,这可能特别有用,因为它们将无法导航到 localhost作为申请地址。

关于c# - 覆盖应用程序根 URL 的真正作用是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43888687/

相关文章:

c# - 通过 UDP 到 C# 的 IPFIX 数据 - 我可以解码数据吗?

asp.net - 在单个 Azure 云服务上部署多个 Web 角色和辅助角色

c# - 将文件下载到客户端浏览器,卡在 Response.End()

asp.net - googlebot在抓取时会保留 session 吗?

iis - 如何在 IIS 10 上配置缓存?

C#,如何将字节数组减半?

c# - 将 .Net 核心控制台应用程序部署到 Debian 服务器

c# - 在 VS Code 中使用 DAPR 运行带有服务总线触发器的 Azure Function 时出错

sql-server - SQL Server IIS 如何查找内存消耗的原因

iis - 如何使用 PowerShell 2.0 针对 IIS 6.0 删除虚拟目录