分别使用HttpWebRequest / HttpWebResponse和Streamreader时,操作超时

时间:2016-04-24 00:02:38

标签: c# php httpwebrequest streamreader httpwebresponse

所以我目前正在使用HttpWebRequest和HttpWebResponse系统将信息发送到php文档,同时使用不同的系统使用Streamreader从不同的php文档中获取信息。这些php文件处理来自icecast流的统计数据。

可以从某些命令调用请求/响应系统,这些命令通过我的代码向系统的不同实例发送不同的信息。代码设置如下,然后根据不同的命令进行更改:

string newURL = "setStat.php?type=type1&n=" + stats;
HttpWebRequest wrequest = (HttpWebRequest)WebRequest.Create(newURL);
HttpWebResponse wresponse = (HttpWebResponse)wrequest.GetResponse();
Stream resStream = wresponse.GetResponseStream();

每次来自icecast流的歌曲改变为从当前歌曲中获取新的统计数据时,都会调用Streamreader系统。代码设置如下:

WebClient web = new WebClient();
using (StreamReader status = new StreamReader(web.OpenRead("icecast.php")))
{
    string line = string.Empty;
    while ((line = status.ReadLine()) != null)
    {
        ...
    }
    status.Close();
}

现在我用来获取错误" System.Net.WebException:操作超时"在使用了许多带有请求/响应的命令之后,该错误将落在我的Streamreader行上:

using (StreamReader status = new StreamReader(web.OpenRead("icecast.php")))

然后昨晚我找到了我认为解决这个操作超时问题的方法。我遇到了一个不同的问题,建议使用:

System.Net.ServicePointManager.DefaultConnectionLimit

所以我在初始化函数开始时将其添加到我的代码中并将其设置为等于10,我认为这将是矫枉过正的但是会工作,因为我认为根据我的理解,我只需要2。似乎我的问题一直持续到几个小时前才回来。我开始怀疑我是否只是没有足够的连接而且我的限制导致了它,或者是否有更好的方法让这两个独立的系统工作而不会互相干扰。任何建议都会非常感激。

0 个答案:

没有答案