IIS 10 Site Bindings 通配符开发机

IIS 10 Site Bindings wildcard development machine

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

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

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

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

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

我总是可以通过在我的 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 能够接管的那一点解析。但这真的只是一个有根据的猜测。但是 kindof 是有道理的,为什么它对一个而不是另一个有效。

*.localdev.me 在没有主机文件的情况下工作的原因是因为该域的 public DNS 解析为 127.0.0.1 只要它不是 localdev.mewww.localdev.me。当您的主机文件为空时,您可以使用 nslookup *.localdev.me(将星号替换为 www 以外的任何内容)进行检查。另一方面,*.localhotfix.me 根本没有在 public DNS 中注册,这就是为什么你需要一个主机文件条目。