【发布时间】:2015-06-22 14:38:27
【问题描述】:
我编写了一个通过网络调用另一个服务的 Windows 服务。
其他服务的 IP 在 hosts 文件中定义。
Windows 服务作为本地系统运行。
在 Windows Server 2008 上,这可以正常工作。使用 hosts 文件中的 IP。
在 Windows 7 上,hosts 文件中的 IP不被使用。相反,它使用普通的 DNS。
如果我使用普通用户而不是本地系统,则行为是正确的。与 Windows Server 2008 相同。使用主机文件。
我可以可靠地在本地系统和普通用户之间切换相同的服务二进制文件,而无需接触主机文件,该错误是可重现的。因此,这与在任何地方缓存任何内容或拥有错误的主机文件无关。
我错过了 Windows 7 中的任何内容吗?为什么作为本地系统运行的服务不使用 hosts 文件?
【问题讨论】:
-
Windows 7 上的 hosts 文件中是否存在错误,从而导致条目被忽略(如某些控制字符显示为常规空格)?
-
好吧,如果我将用户切换到实际用户而不是 LocalSystem,相同的主机文件和相同的服务二进制文件可以正常工作,所以我想它一定是正确的。
-
您是否检查了 hosts 文件的权限以确保它们正确无误?
-
另外,机器是否有任何代理配置设置,使得一个用户被强制通过代理,而另一个用户没有?这可以通过组策略设置吗?我相信在 Internet 配置中设置代理设置时会忽略主机文件。
-
这个问题不属于这里。规范的 Q+A is here.