【问题标题】:Use machine-name instead of localhost on IIS express在 IIS express 上使用机器名而不是 localhost
【发布时间】:2021-02-27 19:43:38
【问题描述】:

我正在通过 Visual Studio (2015) 和 IIS Express 运行 WCF 服务。

我可以导航到 http://localhost:50122/TestService.svc

我想做的是导航到 http://machine-name:50122/TestService.svc

如何将 IIS Express 配置为接受机器名,而不是 localhost?

我尝试过的没有成功:

  1. 在 Visual Studio 项目/属性/Web/ 尝试将Project Url 更改为 http://machine-name:50122/ 但是VS阻止了这个!

  2. 在 Visual Studio 解决方案文件夹中有一个隐藏的 .vs\config 文件夹。其中有一个文件:applicationhost.config;我添加了另一个带有机器名的绑定(第二行)

<bindings>
  <binding protocol="http" bindingInformation="*:50122:localhost" />
  <binding protocol="http" bindingInformation="*:50122:intel-nuc" />
</bindings>
  1. 如果有用,http://localhost 和 http://intel-nuc 都可以工作(默认端口 80)并指向默认的 IIS 提供的演示页面 - 但这些是由 IIS 提供的(不是 IIS Express) .

【问题讨论】:

    标签: visual-studio-2015 localhost iis-express


    【解决方案1】:

    在 stackoverflow 上找到这个: How to enable external request in IIS Express? ,这也适用于“内部”请求。

    我使用的命令(以管理员身份运行)

    netsh http 添加 urlacl url=http://intel-nuc:50122/user=everyone

    之后,你还需要以管理员身份运行 VS。

    【讨论】:

    • 如果一个 URL 预留是通过 netsh 创建的,那么你不需要以管理员身份运行 VS 来让 IIS Express 绑定到那个 URL。
    • @LexLi 理论和实践不同,其实我一开始试过VS没有Admin,IIS Express启动不了,说的是需要管理员权限。
    • @LexLi,为了进一步澄清,我注意到当我以管理员身份运行时,IIS 同时服务于localhost:portmachine-name:port; (如系统托盘中所示)。但如果我在没有管理员的情况下运行,则只有 machine-name;port 启动;换句话说,您说不需要管理员可能是正确的,但是现在本地主机需要管理员!
    • 然后你可以netsh http add urlacl url=http://localhost:50122/ user=everyone注册到所有地址,根本不用管理员身份运行!
    猜你喜欢
    • 2013-11-20
    • 2017-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多