首页 > 解决方案 > 与公共 IP 连接时显示网站(IIS 上的主机)的问题

问题描述

在 2 个不同的 VM 上部署了一个 API(.Net Core)和一个前端。对于数据库,我运行 Azure SQL 数据库。当尝试通过私有 IP(本地网络)访问前端时,一切正常,我可以调用并在数据库中添加数据。但是当使用公共 IP 时,我只能看到 UI,但它无法与数据库(API)通信,我很困惑,因为在专用网络中一切正常。

标签: .netazureiisazure-sql-database

解决方案


正如您所说的在与公共 IP 连接时显示网站(托管在 IIS 上)的问题。我假设您使用的是 IIS-Express。

IIS-Express 默认只连接到 localhost。

  1. 以管理员身份运行 Visual Studio。

  2. 更改绑定协议并允许从公共 IP 地址传入,如文档中所述:Johan Driessen 的关于从远程计算机访问 IIS Express 站点的帖子 | 在这里

  3. 您必须重新启动 IIS Express 才能使修改生效。

要解决此问题,请编辑位于 C:\Users<username>\My Documents\IISExpress\config\applicationhost.config 的 IIS-Express 应用程序配置文件并更改站点的绑定信息。

<binding protocol="http" bindingInformation=":xxxx:" /> 

<binding protocol="http" bindingInformation=":xxxx:machineName" /> 

<binding protocol="http" bindingInformation=":xxxx:10.1.10.123" /> 

或者

<binding protocol="http" bindingInformation="*:xxxxxx:*" />

完成此操作的最简单方法是右键单击 IIS Express 图标并选择退出。该图标将消失,因此您将无法以这种方式重新启动它。相反,使用 Visual Studio 为您的 Web 项目启动一个调试会话。它将重新启动 IIS。作为一个额外的好处,您可以通过右键单击 IIS 图标、在“查看站点”下找到您的 Web 应用程序以及现在可以访问您的应用程序的 IP 地址来验证更改。它应该在那里显示您的绑定修改。


推荐阅读