我编写了一个通过网络调用另一个服务的 Windows 服务。
其他服务的 IP 在主机文件中定义。
Windows 服务作为本地系统运行。
在 Windows Server 2008 上这工作正常。使用主机文件中的 IP。
在 Windows 7 上,hosts 文件中的 IP 不被使用。相反,它使用普通的 DNS。
如果我使用普通用户而不是本地系统,行为是正确的。与 Windows Server 2008 相同。使用主机文件。
我可以在本地系统和普通用户之间可靠地切换相同的服务二进制文件,而无需触及主机文件,错误是可重现的。因此,这与在任何地方缓存任何内容或拥有错误的主机文件无关。
我错过了 Windows 7 中的任何内容吗?为什么作为本地系统运行的服务不使用主机文件?
最佳答案
它作为普通用户工作的原因可能是这样的:您可能在 %LOCALAPPDATA%\VirtualStore
中有一个重复的 hosts
文件,它是程序的重定向文件夹以非管理员身份运行并尝试写入系统位置。如果是这种情况,那么当您认为自己编辑系统文件时,您实际上看到了错误的 hosts
文件!
另一个原因可能是错误的文件权限设置。请尝试 https://serverfault.com/a/452269 中的第 5 点
关于c# - Windows 7 操作系统中的服务不使用主机文件作为本地服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29670490/