HttpWebRequest的双向SSL问题

Raffaello 2008-06-17 08:53:29
一个网银查询接口,需要双向SSL
相关代码如下
HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(strUrl);
CookieContainer CookieJar = new CookieContainer();
myRequest.CookieContainer = CookieJar;
myRequest.Credentials = CredentialCache.DefaultCredentials;
myRequest.Method = "POST";
myRequest.ContentType = "application/x-www-form-urlencoded";
myRequest.ContentLength = data.Length;
myRequest.ClientCertificates.Add(crt);
myRequest.KeepAlive = false;
myRequest.UserAgent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; .NET CLR 1.1.4322; .NET CLR 2.0.50727)";

Stream newStream = myRequest.GetRequestStream();
在vs的debug环境下一切正常,部署到IIS后,在最后一句抛出异常“请求被中止: 未能创建 SSL/TLS 安全通道。”
找过了相关资料,试过了如下两个方法,都没有用
ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(CheckValidationResult);
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls;或者SecurityProtocolType.Ssl;
...全文
362 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
cat58 2011-08-12
  • 打赏
  • 举报
回复
用什么办法解决的呀?能不能指导一下啊? 万分感谢!
Raffaello 2008-06-21
  • 打赏
  • 举报
回复
用其他办法解决了,看上去还是iis的问题
jzywh 2008-06-18
  • 打赏
  • 举报
回复
如果是SSL的话你要用 SslStream
lihongdian 2008-06-18
  • 打赏
  • 举报
回复
应该是IIS没有配置好SSL...可能需要微软帮助
goldeneyezhang 2008-06-18
  • 打赏
  • 举报
回复
帮顶。帮顶。帮顶。帮顶。帮顶。
Raffaello 2008-06-18
  • 打赏
  • 举报
回复
谢谢楼上的,问题是在开发环境中一切正常,部署到IIS中就不正常了
后来猜想是不是ASPNET用户读取数字证书的权限有问题,因为证书不是ASPNET用户导入的
把从系统数字证书存储区读取改成直接从文件读取
现在GetRequestStream()可以过了,但是在GetResponse()的时候抛出异常
InnerException: {"无法从传输连接中读取数据: 您的主机中的软件放弃了一个已建立的连接。。"}
Message: "基础连接已经关闭: 接收时发生错误。"
但是查看HaveResponse属性却是true

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧