asp.net - IIS 10 站点绑定(bind)通配符开发机

标签 asp.net iis binding wildcard

我已在本地开发计算机上成功设置 IIS(开发分支 - 设置为 localdev.me),但是当我去设置另一个分支(修补程序 - 设置为 localhotfix.me)时,我遇到了问题。这些问题是由于网站的设置方式造成的。 url 的子域用于确定要连接到哪个数据库。因此,访问 host.localdev.me 将连接到主机数据库。因此,在 IIS 中,我对站点的绑定(bind)进行了以下设置。

Type    Host Name        Port  IP Address
http    localdev.me      80    *
http    *.localdev.me    80    *

我可以使用任何子域 ping localdev.me,并按预期获得环回地址。然后,当我设置修补程序分支(与开发完全相同,但具有以下绑定(bind))时,我收到名称未解析错误。

Type    Host Name           Port  IP Address
http    localhotfix.me      80    *
http    *.localhotfix.me    80    *

第一个设置有效而第二个设置无效是否有原因?更奇怪的是,如果我告诉 IIS 停止,我仍然可以 ping localdev.me 上的子域并获取环回地址。

我总是可以通过在 Windows 主机文件中手动指定主机名来使其工作,但我不想这样做,因为每次添加新子域时我都需要进入并编辑文件。

编辑:这些是我收到的具体错误。

ping localhotfix.me
Ping request could not find host localhotfix.me. Please check the name and try again.

EDIT2:我有一个效果相当好的解决方案。它需要 Acrylic DNS 并安装 Microsoft Loopback Adapter。我将环回适配器设置为有效的 IP 地址,并将 DNS 服务器设置为 127.0.0.1,然后编辑 AcrylicHosts 文件以包含带有通配符的每个域的条目。完成所有这些操作后,我就能够 ping localhotfix.me 和 *.localhotfix.me。我相信 localdev.me 工作的原因是因为它是一个有效的域。名称将会解析,此时我相信 IIS 能够接管。但这实际上只是一个有根据的猜测。但为什么它对其中一个有效而不对另一个有效,这是有道理的。

最佳答案

原因*.localdev.me无需主机文件即可工作,因为该域的公共(public) DNS 解析为 127.0.0.1只要不是 localdev.mewww.localdev.me 。您可以使用 nslookup *.localdev.me 检查这一点(将星号替换为 www 之外的任何内容),而您的主机文件为空。另一方面,*.localhotfix.me根本没有在公共(public) DNS 中注册,这就是为什么您需要这些主机文件条目。

关于asp.net - IIS 10 站点绑定(bind)通配符开发机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32830887/

相关文章:

css - 在 asp 向导上更改事件步骤标题颜色

c# - 从 ASP.Net MVC 5 Identity 添加外键时出错?

windows-7 - IIS7,Default.aspx 错误消息(屏幕截图)

iis - 我应该如何将排队的邮件从 IIS 移动到不同服务器上的 Exchange?

silverlight - 如何绑定(bind) DataGridColumn.Visibility?

asp.net - Microsoft/Facebook 身份验证的高级功能在 Asp .Net Core RC1 上不可用

ASP.NET UpdatePanel 错误 htmlfile : Unknown runtime error, updatePanelElement.innerHTML=rendering

asp.net - "<authentication mode="中的服务器错误无"/> "

c# - Oracle.DataAccess (ODP.NET) 数组绑定(bind) "Value does not fall within the expected range"

wcf - WCF 中的大请求问题