C# HttpWebResponse上处理的奇怪对象异常

C# HttpWebResponse上处理的奇怪对象异常,c#,.net,web,C#,.net,Web,我正在开发一个程序,每5秒钟自动查询一个网站。在过去的几天里,它一直工作得很好,但今天当我重新启动它时,它一直在下面标记的行上抛出System.ObjectDisposedException。我应该提到的是,在同一台机器上通过浏览器访问此URL可以正常工作 代码: HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://www.bitstamp.net/api/ticker/"); request.Method =

我正在开发一个程序,每5秒钟自动查询一个网站。在过去的几天里,它一直工作得很好,但今天当我重新启动它时,它一直在下面标记的行上抛出
System.ObjectDisposedException
。我应该提到的是,在同一台机器上通过浏览器访问此URL可以正常工作

代码:

HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://www.bitstamp.net/api/ticker/");

request.Method = "GET";

try
{
    // ObjectDisposedException thrown here
    using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) 
    {
        using (StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8))
        {
            string resultString = reader.ReadToEnd();
            return resultString;
        }
    }
}
catch (WebException ex)
{
    // Handle it
}
System.ObjectDisposedException occurred
    _HResult=-2146232798
   _message=Cannot access a disposed object.
    HResult=-2146232798
    IsTransient=false
    Message=Cannot access a disposed object.
Object name: 'SslStream'.
Source=System
    ObjectName=SslStream
StackTrace:
at System.Net.Security.SslState.ValidateCreateContext(Boolean isServer, String targetHost, SslProtocols enabledSslProtocols, X509Certificate serverCertificate, X509CertificateCollection clientCertificates, Boolean remoteCertRequired, Boolean checkCertRevocationStatus, Boolean checkCertName)
 InnerException: 
堆栈跟踪:

HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://www.bitstamp.net/api/ticker/");

request.Method = "GET";

try
{
    // ObjectDisposedException thrown here
    using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) 
    {
        using (StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8))
        {
            string resultString = reader.ReadToEnd();
            return resultString;
        }
    }
}
catch (WebException ex)
{
    // Handle it
}
System.ObjectDisposedException occurred
    _HResult=-2146232798
   _message=Cannot access a disposed object.
    HResult=-2146232798
    IsTransient=false
    Message=Cannot access a disposed object.
Object name: 'SslStream'.
Source=System
    ObjectName=SslStream
StackTrace:
at System.Net.Security.SslState.ValidateCreateContext(Boolean isServer, String targetHost, SslProtocols enabledSslProtocols, X509Certificate serverCertificate, X509CertificateCollection clientCertificates, Boolean remoteCertRequired, Boolean checkCertRevocationStatus, Boolean checkCertName)
 InnerException: 
我做错什么了吗?在使用访问
之前,我甚至没有访问响应流,如何处理它


编辑:添加了url和堆栈跟踪

简化了一些事情,只需执行以下操作:

WebRequest.Create("https://www.bitstamp.net/api/ticker/").GetResponse();
我得到了WebException“服务器违反了协议。Section=ResponseHeader Detail=CR后面必须跟LF”,这表明服务器端出现了问题,解决这个问题的一个(可能是唯一的)方法是将以下内容添加到配置文件中:

<system.net> 
  <settings> 
    <httpWebRequest useUnsafeHeaderParsing="true" /> 
  </settings> 
</system.net>


不管怎样,这对我很有用。

堆栈跟踪是什么?网站是谁的?为堆栈跟踪和网站编辑如果你使用浏览器(从同一台机器)访问URL会发生什么情况?@stovroz URL在同一台机器上的浏览器中工作正常事实上,在另一台计算机上,我得到的是“服务器违反了协议”错误,而不是objectdisposed。很奇怪。