从 iPad 访问 IIS Express 网站

从 iPad 访问 IIS Express 网站

我正在尝试从 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 地址。

其次,我需要清除浏览器的缓存,因为浏览器存储的应用程序中有一个永久重写规则。这导致重定向到错误的安全连接,因为它仍在尝试路由到旧连接。

相关内容