在vs打开请求ssl正常,部署在IIS上请求出现"基础连接已经关闭:意外连接被关闭"

(HttpWebResponse)webrequest.GetResponse()响应的时候报错。
估计是IIS配置问题?

IIS的超时如果设置的太短,而网络访问时间太长,会导致这个问题。

说错了,是asp.net执行超时限制

参考

http://www.cnblogs.com/kingboy2008/p/3711143.html

超时了,或服务端执行没
返回

IIS和你的VS是同一台机器吗?如果不是,确保IIS所在机器能够访问请求的url.

另外IIS下asp.net的运行账户是比较低的Network Service(IIS6) 或者其他的专用账户(IIS7). 确保有权限访问internet,主要是如果有proxy的情况下。

万能的CSDN,有没有哪位大神知道怎么解决这问题??

发现一个新问题
ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult);
private static bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors)
{
return true;//总是接受
}

在 vs直接运行CheckValidationResult这个委托方法被调用1次。 部署在IIS下面被调用了2次。不知是什么原因。

CheckValidationResult 看上去是验证证书等,是不是这方面没通过验证

贴一下异常详细信息吧。

图片说明

代码很简单,证书和密码都是验证通过的。

        ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult);
        X509Certificate cer = new X509Certificate(cert, password);
        HttpWebRequest webrequest = (HttpWebRequest)WebRequest.Create(url);
        webrequest.ContentType = "application/x-www-form-urlencoded";
        webrequest.ClientCertificates.Add(cer);
        webrequest.Method = "post";
        webrequest.ProtocolVersion = HttpVersion.Version10;
        using (webrequest.GetResponse())   这个位置报的错
        {
        }

          private static bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors)
    {
            return true;//总是接受
    }

已经找到问题原因了,结贴。