我正在尝试从 iPad 访问http://localhost:25436/
。我在 Stack Overflow 和其他地方查看了许多类似的问题,但没有一个能解决这个问题。
我正在使用 Visual Studio 2013 来构建网站,因此我很确定我的 application.config 路径是...\Documents\IISExpress\config\applicationhost.config
。
我的网站绑定如下所示:
<bindings>
<binding protocol="http" bindingInformation="*:25436:*" />
<binding protocol="https" bindingInformation="*:44300:*" />
</bindings>
我以管理员身份在命令提示符中运行了以下命令:
netsh http add urlacl url=http://*:25436/ user=everyone
netsh http add urlacl url=https://*44300/ user=everyone
我运行了这个命令来允许它通过防火墙:
netsh advfirewall firewall add rule name="IISExpressWeb" dir=in protocol=tcp localport=25436 profile=private remoteip=localsubnet action=allow
当我运行 IIS Express 时,我看到:
已成功为站点“MySite”应用程序“/”注册 URL“http://*:25436/”
已成功为站点“MySite”应用程序“/”注册 URL“https://*:44300/”
网站“MySite”注册已完成
我的 IP 是10.0.0.249
,当我尝试http://10.0.0.249:25436
从我的 iPad 访问时,它会停留在那里尝试连接一段时间,然后我收到错误:
该网页不可用
连接超时错误
此外,IIS Express 窗口中没有任何反应(没有任何消息表明有连接尝试或任何内容)。
我也尝试过iisexpress-proxy
。我使用 npm 安装了代理并运行了以下命令:
iisexpress-proxy 25436 as 3000
http://10.0.0.249:3000
然后,当我尝试从 iPad访问时,我在 IIS Express 窗口中看到此消息:
请求已开始:“GET”http://本地主机:25436/
紧接着,它又说:
请求结束:http://本地主机:25436/HTTP 状态为 200.0
但是,我的 iPad 上的网页仍然会继续尝试加载网页。
如果可以的话,我想不使用代理来做到这一点,但代理似乎更接近于工作。然而,我不知道我错过了什么,也不知道为什么页面无法加载。
答案1
终于解决了问题。原来有两个问题。
首先,我必须将此行添加到我Web.config
的项目中的文件中:
<add input="{HTTP_HOST}" pattern="10\.0\.0\.89" negate="true" />
10.0.0.89 是我运行 IIS Express 的 IP 地址。
其次,我需要清除浏览器的缓存,因为浏览器存储的应用程序中有一个永久重写规则。这导致重定向到错误的安全连接,因为它仍在尝试路由到旧连接。