如何使用本地主机以外的 URL 调试 ASP.NET 核心 webapp

How to debug ASP.NET Core webapp using a URL other than localhost

我有一个 Web 应用程序,其行为因主机名而异。为了在我的本地 PC 上测试它,我需要安排 IISExpress 运行 使用我在项目 -> 属性 -> 调试中提供的特定名称的 Web 应用程序,例如 http://mywebsite:58981/.

但是在开始调试的时候,弹出一个提示信息"Unable to connect to web server 'IIS Express'"。 Windows 10 activity 中心提醒我一条消息,单击它后,我收到了来自 IIS Express 的弹出窗口:

我尝试了其他用户的建议,例如删除包含 applicationhost.config 的 .vs 文件夹并重新启动解决方案,但它仍然不起作用。我什至确保 IIS Express 没有任何其他东西 运行ning:

但是如果我把应用URL改回http://localhost:58981/,删除了.vs文件夹,并打开解决方案,我可以像往常一样调试。

所以我的问题是:如何将 URL 从 localhost 更改为其他内容?我是 运行宁 Visual Studio 2019 年,我的 Windows 10 是 1903 年版。

第一个建议是 运行 Visual Studio 作为管理员。

修改 IIS Express 配置文件,进入编辑文件:

\{project folder}\.vs\{yourWebApplicationName}\config\applicationhost.config

你会找到这样的东西(用你的应用程序名称找到):

<site name="WebApplication3" id="2">
    <application path="/" applicationPool="WebApplication3 AppPool">
      <virtualDirectory path="/" physicalPath="C:\Users\Administrator\source\repos\WebApplication3\WebApplication3" />
    </application>
    <bindings>
      <binding protocol="http" bindingInformation="*:53717:localhost" />
      <binding protocol="https" bindingInformation="*:44325:localhost" />

    </bindings>
</site>

<bindings>中添加,再添加一行自己的IP,端口号:

<binding protocol="http" bindingInformation="*:53717:mywebsite" />

转到 C:\Windows\System32\drivers\etc 编辑 hosts 文件(复制到另一个地方,编辑并复制回来):

# localhost name resolution is handled within DNS itself.
    127.0.0.1       mywebsite
#   ::1             localhost

然后您可以使用http://mywebsite:53707调试您的应用程序,您可以在Configure中注释掉app.UseHttpsRedirection();来处理HTTP请求。