在没有互联网连接的 LAN 上通过 IIS 托管 WCF 服务

在没有互联网连接的 LAN 上通过 IIS 托管 WCF 服务

这可能是一个非常简单的修复,但我不知道哪里出了问题。我有两台计算机连接到 D-Link WiFi 路由器的 LAN 端口。我没有互联网连接。WiFi 路由器按预期为两台计算机分配 IP 地址。在一台计算机上,我运行 Webmatrix 并托管 WCF 服务。我按照说明操作这里如何正确设置。当我从第二台计算机导航到 WCF 服务时,它找不到该服务。但是,当我将 WiFi 路由器连接到互联网时,它工作正常。

我也尝试在 hosts 文件中添加条目,但如果路由器未连接到互联网,我仍然无法让它工作。有没有办法让它在路由器未连接到互联网的情况下工作?

编辑:如果我将其更改为使用 IP 地址,则此方法有效。如何才能让它仅使用机器名称来工作?

答案1

因此看起来您的主机查询了一些您想象不到的其他名称,并等待 DNS 服务器响应。

正确的解决方案是确定发送了哪些查询(通过 Sysinternals 网络监视器或通过 tcpdump 或通过 wireshark 嗅探 udp/53 或 tcp/53 传出通信)。然后将这些名称准确插入“hosts”文件中。混淆可能是主机尝试查询“hostA.subdomainB。”或“hostA.subdomainB.domainC。”或者它使用“1.2.3.4.in-addr.arpa”对其自己的 IP 执行反向解析。也可能是您的“hosts”文件由于某种原因未正确解析。

第二种解决方案是 (1) 拥有一个内部 DNS 服务器,为 (2) 本地 DNS 域(例如.local)提供服务。请参阅类似的问题和答案https://superuser.com/questions/368861/can-i-use-dir-655-for-internal-dns。路由器不是运行内部 DNS 服务器的最佳位置,因为安装和维护它非常困难,即使在更高级的固件(如 DD-WRT 或类似的自定义固件)上也是如此。据我所知,D-Link 路由器的默认固件不支持 DNS 服务器;它们有 DNS 转发器(又名 DNS 中继)或 DynamicDNS 客户端,但这不是您所需要的。所以它可能位于另一个盒子上(带有绑定的 Linux?)。

相关内容