IISExpress从远程机器返回503错误。
IISExpress从远程机器返回503错误。
我正在尝试在本地网络上的其他设备上测试我在本地IISExpress实例中运行的网站。我使用的是Win7 Pro操作系统。
当我首次尝试从本地网络段的另一台设备上浏览到我的机器时,我收到一个400错误:主机名无效。
我了解到我需要使用提升权限的命令在命令提示符中授予ACL远程访问权限,类似于以下命令:
netsh http add urlacl url=http://mymachinename:50333/ user=everyone
现在,我收到一个503服务不可用的错误。
Windows防火墙目前已关闭,我能够通过地址http://localhost:50333
浏览我的本地IISExpress实例。
这个配置问题的最后一块是什么?
问题的出现的原因:问题出现的原因是因为使用IIS Express时,从远程机器访问时返回503错误。尝试使用IP地址访问时仍然返回503错误。
解决方法:最终的解决方法是在配置文件中使用特定的绑定信息。使用*:portnumber:*
的方式无效。只有使用localhost
才能正常工作。尝试使用真实的IP地址或主机名时,仍然返回503错误。最终的配置文件如下:
<binding protocol="http" bindingInformation="*:53351:localhost" /> <binding protocol="http" bindingInformation="192.168.1.50:53351:*" />
这样,就可以通过http://192.168.1.50:53351
从远程机器连接到IIS Express。
另外,也可以使用通配符在配置文件中动态地指定IP地址和主机名,如下所示:
<binding protocol="https" bindingInformation="*:44300:*" />
<binding protocol="http" bindingInformation="*:8888:*" />
这样,在配置文件中不需要硬编码当前的IP地址,因为它可能会发生变化。
问题:IISExpress在远程机器上返回503错误的原因和解决方法
在使用IISExpress时,有时候会遇到从远程机器上访问时返回503错误的情况。下面是一些解决这个问题的方法:
1. 检查applicationhost.config文件中是否缺少绑定信息的条目。该文件的可能位置有:
- %userprofile%\Documents\IISExpress\config\applicationhost.config
- $(solutionDir)\.vs\config\applicationhost.config (VS2015)
- 如果以上位置都没有找到,可以通过检查iisexpress.exe的输出来确定。
2. 找到你的WebSite条目,并添加以下绑定信息,使用你的机器名称:
3. 重启IIS Express。
4. 有时候IIS Express并不总是使用指定的配置文件路径。仔细阅读iisexpress.exe的输出,可以确定它使用的是哪个配置文件。
5. 重启IIS Express,可以通过在系统托盘中定位IIS Express图标并停止它强制它重新启动。
6. 另一个可能的原因是HTTPS端口必须在44300-44399的范围内,才能使用IIS Express提供的自签名证书。换句话说,端口44900将无法工作,除非进行额外的配置。
7. 如果你懒得为每个主机名/ IP地址组合添加绑定信息,可以使用*代替"your-machine-name"。
8. 从命令提示符中启动时,如果使用iisexpress.exe的/path选项而不是/config选项,IIS Express将复制配置并将绑定更改为localhost。
9. 有人发现使用
可以工作。他使用ngrok http 5001
创建了隧道。对他来说,关键的部分是修改了$(solutionDir)\.vs\config\applicationhost.config
中的配置。
10. 另一个提示是,如果右键单击IISExpress的系统托盘图标,可以选择"Show all applications",这将打开一个对话框,显示你当前在本地运行的所有应用程序。右键单击所需的应用程序(不要左键单击,否则会打开浏览器),然后你将看到下面的"Path"和"Config"。左键单击"Config",它将打开相关的Applicationhost.config文件,在这里需要根据上面的描述添加/编辑绑定信息。这是一个定位当前配置的简单方法。
11. 在Windows 8.1上,IIS Express的applicationhost.config文件位于C:\Windows\System32\inetsrv\config。
12. applicationhost.config文件也可能位于$(solutionDir)\.vs\Core\config\applicationhost.config。在解决503错误之前,可能需要更新这个文件。
通过添加绑定信息到applicationhost.config文件并重启IIS Express,可以解决IISExpress在远程机器上返回503错误的问题。此外,还可以通过检查输出信息和重新启动IIS Express来解决其他可能的问题。