C# HTTP连接有问题

C# HTTP连接有问题,c#,http,connection,persistence,C#,Http,Connection,Persistence,我有个大问题(很抱歉我的英语不好)。 我直接附上我的代码: public bool isServerOnline() { Boolean ret = false; try { HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(VPMacro.MacroUploader.SERVER_URL); req.Method = "HEAD"

我有个大问题(很抱歉我的英语不好)。 我直接附上我的代码:

public bool isServerOnline()
{
        Boolean ret = false;

        try
        {
            HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(VPMacro.MacroUploader.SERVER_URL);
            req.Method = "HEAD";
            req.KeepAlive = false;
            HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
            if (resp.StatusCode == HttpStatusCode.OK)
            {
                // HTTP = 200 - Internet connection available, server online
                ret = true;
            }
            resp.Close();
            return ret;

        }
        catch (WebException we)
        {
            // Exception - connection not available
            Log.e("InternetUtils - isServerOnline - " + we.Status);
            return false;
        }
}
此函数由许多线程调用,并向Tomcat服务器发送HEAD请求。 所以,这个方法为我执行的每个请求打开一个连接,在10分钟内我激活了100个连接


如何解决此问题?

Tomcat Manager显示会话,而不是活动的TCP连接。每个请求都可能启动一个新会话,但活动会话不一定表示活动TCP连接。

要正确管理连接,可以做两件事:

第一:

初始化

HttpWebResponse resp;
在try语句之前

然后在finally语句中结束

finally
{ 
    if (resp != null) 
    {
        resp.Close();
    }
}
第二:

尝试使用“using()”子句管理您的连接


您如何测量100个带电连接?还有,为什么这是一个问题?我已经打开了Tomcat Manager,我看到了会话号。如果是这样的话,你能接受这个答案吗?请:)当然。我认为这个答案是对的。但是,你能告诉我如何解决会话问题吗?@Cecco:“问题”出在服务器上,而不是客户端。显然,Tomcat将会话保持活动状态一段时间。应该有一个配置选项,告诉它会话保持活动的时间。不过,你可能不想改变这一点。好吧,我提出一个新问题,这样就不会有任何问题了。谢谢你的帮助。
using(var a = new connection())
{
    //Your code
}