IISExpress从远程计算机返回503错误

Jef*_*itz 181 iis-express

我正在尝试测试我在本地IISExpress实例中运行的网站以及我本地网络上的其他一些机器/设备.我正在运行Win7 Pro.

当我第一次尝试从本地网段上的另一台机器浏览到我的机器时,出现400错误:主机名无效.

我知道我需要在提升的命令提示符下使用命令授予对ACL的远程访问权限,如:

netsh http add urlacl url=http://mymachinename:50333/ user=everyone

现在我得到503服务不可用错误.

Windows防火墙当前已关闭,我可以使用该地址浏览本地IISExpress实例 http://localhost:50333

这个配置难题的最后一块是什么?

vik*_*all 266

看起来您在applicationhost.config文件中缺少绑定信息条目.

  1. 打开applicationhost.config文件.可能的位置是:

    • %userprofile%\Documents\IISExpress\config\applicationhost.config
    • $(solutionDir)\.vs\config\applicationhost.config (VS2015)
    • 如果做不到这一点,请检查输出iisexpress.exe是否确定.
  2. 找到您的WebSite条目,并使用您的机器名称添加以下绑定.

         <binding protocol="http" bindingInformation=":50333:your-machine-name" />
    
    Run Code Online (Sandbox Code Playgroud)
  3. 重新启动IIS Express

  • 没关系.Visual Studio为该项创建了重复的配置条目.我删除它,它工作. (9认同)
  • 如果你懒得添加每个主机名/ ipaddress组合,请使用*而不是"your-machine-name" (9认同)
  • 关键点项目3,重启IIS Express!找到系统托盘中的图标并将其停止以强制重新启动.不确定是否有更优雅的方式.但这对我有用.谢谢! (5认同)
  • IIS Express并不总是使用该路径中的配置文件.仔细阅读`iisexpress.exe`的输出,看看它正在使用哪个配置文件. (3认同)
  • 另一个原因是,HTTPS端口必须在44300-44399范围内才能使用IIS Express提供的自签名证书.换句话说,如果没有其他配置,端口44900将无法工作.http://www.iis.net/learn/extensions/using-iis-express/handling-url-binding-failures-in-iis-express (2认同)
  • 还有一个提示:如果右键单击IISExpress的系统托盘图标,则可以选择"显示所有应用程序",这将打开一个对话框,显示当前正在本地运行的所有应用程序.右键单击所需的应用程序(不要左键单击或打开浏览器),然后您将看到下面的"路径"和"配置".左键单击"配置",它将打开相关的Applicationhost.config文件,您需要在其中添加/编辑绑定,如上所述.这是查找当前配置的简便方法. (2认同)

The*_*ard 30

只有一件事对我有用.

使用*:portnumber:*并不好.是的,在这样做并确保Windows防火墙打开后,我可以连接到端口,但我仍然遇到"503"错误.

我在本地测试了一些东西,发现只有http:// localhost有效.使用真实IP地址(不是127.0.0.1,但是,例如,192.168.1.50),仍然在本地计算机上返回503.我尝试在绑定中使用真实主机名,但IIS Express拒绝启动.这实际上可能与主机名的解析方式有关.我没有进一步探索.

最后,我最终使用了这个配置:

<binding protocol="http" bindingInformation="*:53351:localhost" />
<binding protocol="http" bindingInformation="192.168.1.50:53351:*" />
Run Code Online (Sandbox Code Playgroud)

通过这种方式,我能够使用远程机器进行连接http://192.168.1.50:53351.


Raf*_*fal 18

在这样一个完整的主题上浪费了超过3小时后,我决定与你分享我的设置.我的配置是Windows 8上的Visual Express 2012 for Web update 4.这是我第一次回到MS VS自学习(至少8年),现在我确信linux规则.在django这种设置花了我10分钟的搜索文档.

  1. 关闭防火墙进行测试

    netsh advfirewall set allprofiles state off
    
    Run Code Online (Sandbox Code Playgroud)
  2. 在我的情况下本地地址设置绑定是localIP = 192.168.1.102(因为链接不能包含非数字域,使用下面而不是mylocaldomain.com,请参阅stackoverflow策略)in Documents\IISExpress\config\applicationhost.config

    <bindings>
        <binding protocol="http" bindingInformation="*:53351:mylocaldomain.com" />
        <binding protocol="http" bindingInformation="*:53351:localhost" />
    </bindings>
    
    Run Code Online (Sandbox Code Playgroud)
  3. 自动为ISS Express启动服务添加自动运行

    <site name="NeuronCharts" id="2" serverAutoStart="true">
    
    Run Code Online (Sandbox Code Playgroud)
  4. 向http服务器添加一些奇怪的规则(我仍然不知道这是否是nesseary)

    netsh http add urlacl url=http://mylocaldomain.com:53351/ user=everyone
    
    Run Code Online (Sandbox Code Playgroud)
  5. 不是从VS IDE手动运行IISExpress

  6. 你会看到ISSExpress正在注册绑定
  7. 运行浏览器,http://mylocaldomain.com:53351 如果它工作,那么我们可以添加防火墙规则
  8. 添加防火墙规则

    netsh advfirewall firewall add rule name="IISExpressWeb" dir=in protocol=tcp localport=53351 remoteip=any action=allow
    
    Run Code Online (Sandbox Code Playgroud)

如果您想访问本地网络使用localsubnet,如果您想从外部访问您的服务器,请将remoteip设置为any

  1. 启动防火墙

    netsh advfirewall set allprofiles state on
    
    Run Code Online (Sandbox Code Playgroud)
  2. 如果一切都在本地和公共IP上工作,请再次检查

祝你好运

拉法尔

  • 这导致IIS Express不再使用VS2013在Win8上运行,而无需以管理员身份运行VS2013.这是由IIS Express现在尝试通过netsh命令打开外部流量引起的.我也从来没有真正能够为它提供服务; 我得到一个503.要解决此答案中netsh命令引起的问题,请从以管理员身份运行的命令提示符运行:`netsh http delete urlacl url = http://*:55416 /`(替换端口你的港口) (3认同)

小智 6

发现问题与坏的urlacl映射有关.想一想:

netsh http show urlacl 
Run Code Online (Sandbox Code Playgroud)

并寻找类似的东西http://+:80/或你绑定的端口.

然后用

netsh http delete url=<the url from the list>
Run Code Online (Sandbox Code Playgroud)

这解决了我的问题.

  • 应该是netsh http delete urlacl url = <列表中的url>,这对我有用,谢谢! (3认同)
  • 谢谢,确切的语法是`netsh http delete urlacl &lt;yoururl&gt;` (3认同)

Too*_*kit 5

什么都没有为我工作。终于我找到了isexpresspress-proxy

见我的回答/sf/answers/2353637961/

另一个解决方案是 ngrok