.net - 与公共 IP 连接时显示网站(IIS 上的主机)的问题
问题描述
在 2 个不同的 VM 上部署了一个 API(.Net Core)和一个前端。对于数据库,我运行 Azure SQL 数据库。当尝试通过私有 IP(本地网络)访问前端时,一切正常,我可以调用并在数据库中添加数据。但是当使用公共 IP 时,我只能看到 UI,但它无法与数据库(API)通信,我很困惑,因为在专用网络中一切正常。
解决方案
正如您所说的在与公共 IP 连接时显示网站(托管在 IIS 上)的问题。我假设您使用的是 IIS-Express。
IIS-Express 默认只连接到 localhost。
以管理员身份运行 Visual Studio。
更改绑定协议并允许从公共 IP 地址传入,如文档中所述:Johan Driessen 的关于从远程计算机访问 IIS Express 站点的帖子 | 在这里。
您必须重新启动 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 地址来验证更改。它应该在那里显示您的绑定修改。
推荐阅读
- javascript - 使用 Jquery 将 CFform 标签转换为 JavaScript - Adobe Coldfusion
- cassandra - 将一列复制到另一列。根据条件赋值:Cassandra CQL
- java - ActiveMQ Artemis:javax.jms.ConnectionFactory 在故障转移的情况下不接收集群拓扑
- ios - CBPeripheral 委托在 NSObject 类 swift 中不起作用
- python - cUrl 发送带有 json 的请求,文件作为 json 键值
- kotlin - 如何获取类型参数的类名?
- javascript - 如何将 this.state 传递给同一页面上的组件?
- r - 如果没有统计差异,则覆盖 cldList stop
- asp.net - 如何更改在 Visual Studio 代码中启动 asp.net web api 的浏览器?
- android - 导航组件异常“已添加片段”