gpt4 book ai didi

c# - windows服务内存泄漏,IIS进程不死

转载 作者:可可西里 更新时间:2023-11-01 10:41:14 26 4
gpt4 key购买 nike

我目前正在开发一项健康监控服务,该服务将调用当前机器托管的每个网站。它所做的是贯穿所有托管网站的基本功能,通过 HttpClient 对机器进行调用,并将它们的当前状态响应保存到数据库中。这样做的问题是,该服务在运行时会创建多个 IIS 工作进程,这些进程不会消失,并且内存使用率每隔几分钟就会增加 1%。我很确定这不是巧合,我已经搜索了很多关于这个问题的不同主题,但找不到适合我的结果。关于如何解决这个问题有什么想法吗?这是我正在使用的代码的摘录:

        public void PingWebsites(List<Website> websites)
{
using (var client = new HttpClient())
{
for (int i = 0; i < websites.Count(); i++)
{
{

if (!websites[i].Environment.Contains("CI"))
{
Task<HttpResponseMessage> response = null;
try
{
response = client.GetAsync(websites[i].Address);

if (!response.Result.IsSuccessStatusCode)
{
SaveStatus(websites[i].ID, 0);

}
else
{
SaveStatus(websites[i].ID, 1);
}

}
catch (Exception e)
{
SaveStatus(websites[i].ID, 0);
}
finally {
if (response != null)
{
response.Dispose();
}
}
}
}
}
}
}

我还搜索了计时器出错和 sql 调用的可能性,但我相信这更多是 HttpClient 的问题。

编辑:我也尝试过使用一个独特的 HttpClient 实例,但内存消耗是一样的,随着时间的推移消耗越来越多,所以这不是我当前的问题。

最佳答案

我已经弄清楚是什么导致了这个问题,请求会使机器过载数百个请求并且由于内存不足,它会发疯。增加容量后,就没有这个问题了

关于c# - windows服务内存泄漏,IIS进程不死,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55576075/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com