IIS Express URL 绑定未按配置绑定?

IIS Express URL binding is not bound as configured?

我在 applicationhost.config 中为我的应用程序配置了 2 个绑定,如下所示:

<bindings>
     <binding protocol="http" bindingInformation="*:12692:localhost" />
     <binding protocol="http" bindingInformation="*:80:127.0.0.2" />
</bindings>

如您所见,那里有一个 IP 绑定,起初没有 ACL 设置允许它,所以我必须 运行 VS 作为管理员,以便可以完成绑定(否则应用程序不会 运行)。如果我 运行 作为管理员,我可以看到 2 个绑定配置正常(它们显示在 IIS Express window 中,可从系统托盘图标访问)。 现在我希望通过使用 netsh 将 IP(用于第二个绑定)添加到 ACL 来更方便(不需要管理权限),如下所示:

netsh http add urlacl url=http://127.0.0.2:80/ user=everyone

报告正常,然后我可以尝试正常重新打开项目(不是以管理员身份)和应用 运行 正常(未报告任何绑定错误)但我只能看到一个绑定(第二个绑定) ,第一个绑定未按预期配置。现在,如果我再次尝试 运行 将 VS 设置为管理员,它在正确配置 2 个绑定的情况下仍然可以正常工作。

所以看起来只是运行宁VS管理员的问题(不涉及ACL配置)。这怎么会导致这个问题?

不建议修改 applicationhost.config 文件。另一件事是,当您打开 visual studio 时,您只能在应用程序 属性 中看到一个站点 bing。如果您想对一个站点使用两个以上的绑定,您可以使用 iis 或 iisexpress 命令:

运行 管理员身份的命令提示符。

通过以下命令 运行 输入 iisexpress.exe 文件夹路径:

cd C:\Program Files\IIS Express

然后 运行 下面的命令到 运行 iisexpress 站点:

iisexpress /config:C:\Users\Administrator\source\repos\webformtest1\.vs\webformtest1\config\applicationhost.config /site:webformtest1(3)

这样你就可以在iis express托盘中看到绑定了: