本地 Azure 待办事项列表

Azure Todo List on Local

抱歉,如果这是一个简单的问题或解决方案很容易找到,但我找不到。不幸的是,在网络上找到你需要的关于 Azure 的东西对我来说几乎是不可能的,因为也许我不知道如何搜索,因为我是一个非常初级的网络程序员并且刚刚开始移动和 Azure。

我开始使用 .Net 后端进行本机 Android 开发,并从 Azure 网页上的教程开始。现在我已经启动了服务和移动应用程序,运行 解决了任何问题。但是我不能 运行 并在本地调试它。我下载了该服务,当我 运行 它打开一个网页时,地址为“http://localhost:59220”。我用于测试的机器和 phone 在同一个网络上。我配置了我的防火墙并且可以远程登录它。但是 phone 无法连接到它。此外,我无法从 phone 或同一网络上的另一台计算机连接到网页。当我尝试使用“192.168.1.100:59220”地址 "I got Bad Request - Invalid Hostname HTTP Error 400" 错误时,phone 其他计算机以及 运行 服务的计算机都出现了错误。但是当我将 ip 更改为 localhost 时它起作用了。

如何在本地 运行 连接我的 phone 并调试我的 todolist 服务?

谢谢。

您的 phone 无法作为 "localhost" 访问您的本地服务器。此 hostname 映射到 IP 地址 127.0.0.1,在您的 phone 上,该地址指向 phone 本身,而不是您 运行 正在使用该网站的计算机.

当您尝试使用 192.168.1.100 时,您的请求确实到达了本地服务器并且很可能被 IIS Express 接收 - Visual Studio 内置的网络服务器 运行 是您的默认项目。

但是,IIS Express 以 Bad Request - Invalid Hostname HTTP Error 400 响应您的请求。那是因为“192.168.1.100”不是它熟悉的主机名。

要获得正确的响应,您需要配置 IIS Express 以接受来自 192.168.1.100 或其他主机名的请求。以下是有关如何执行此操作的说明,改编自此博客 post:IIS Express – HTTP Error 400. The request hostname is invalid

  1. 退出 IIS Express 当前 运行ning.

  2. 打开IIS Express的applicationhost.config位于以下路径C:\Users\<user>\Documents\IISExpress\config\applicationhost.config

  3. 找到您正在开发的特定站点的条目(例如“Azure Todo List”运行ning 在端口 59220 中)。

例如:

   <site name="AzureTodoList" id="10">
        <application path="/" applicationPool="Clr4IntegratedAppPool">
            <virtualDirectory path="/" physicalPath="E:\Projects\BB Apps\AzureTodoList" />
        </application>
        <bindings>
            <binding protocol="http" bindingInformation="*:59220:localhost" />
        </bindings>
    </site>
  1. bindingInformation="*:59220:localhost"替换为bindingInformation="*:59220:*"

    注意:这将使您的网站在响应请求时忽略主机名。这不是最安全的做法。

  2. 保存文件。

  3. 在管理员模式下启动命令提示符并运行以下命令。

    netsh http add urlacl url=http://*:6306/ user=Everyone

  4. 现在再次调试站点,您应该可以使用 IP 地址或主机名访问 url。

urig 的答案是我一直在寻找的解决方案,但还需要一点补充。如果您使用的是 VS2015,applicationhost.config 位于 "solution folder of your project".vs\config 文件夹中。