Windows服务在40分钟后丢失互联网

时间:2017-10-01 18:10:39

标签: networking windows-services firewall windows-administration

我有一个简单的Windows服务(C#),它使用计时器每隔15分钟检查一次外部API。

服务运行正常,直到机器休眠,然后经过几次迭代(大约40分钟)后,它会丢失互联网并且所有请求都会超时。此行为可在计算机,帐户等之间重现,并且在重新启动服务之前不会恢复。

奇怪的是,如果我们让Fiddler在机器上运行,就不会发生这种情况 - 该服务将运行几天而没有任何问题。

我们尝试在自定义/管理帐户,NetworkService和LocalService帐户下运行它,允许用户作为操作系统运行,在nic上节能配置,尝试多台计算机(7和Server 08),将所有代码移植到一个WinForms应用程序 - 所有具有相同的行为。

我正在拔头发并希望“与Fiddler一起工作”会引起知情人士的注意......我的下一个测试是写一个“控制器服务”来停止/重启第一个服务但是我讨厌那个溶液

*已更新,这是发出API请求的代码

    HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(uriDomain + uriLogin);
    WebResponse resp = req.GetResponse();

并下载可用文件

    using (WebClient client = new WebClient())
    {
        client.Headers["Cookie"] = persistCookie;
        client.DownloadFile(uriDomain + fileName, localStoragePath + fileName);
    }

.net CLR应该回收连接 - 这些对象没有明确的关闭等。此外,我不明白运行Fiddler如何使一切工作正常。

感谢

1 个答案:

答案 0 :(得分:0)

听起来你的联系已经不多了。

快速测试是将时间从15分钟更改为1分钟,然后重复测试。如果它失败得更快,那么服务很可能没有正确关闭连接。最终你会达到极限。