Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么Windows Azure CloudBlobContainer访问偶尔会失败?根据验证过程,远程证书无效_Azure - Fatal编程技术网

为什么Windows Azure CloudBlobContainer访问偶尔会失败?根据验证过程,远程证书无效

为什么Windows Azure CloudBlobContainer访问偶尔会失败?根据验证过程,远程证书无效,azure,Azure,我正在使用对Windows Azure的评估订阅 有时,当我尝试访问CloudBlobContainer上的方法(如GetPermissions()时,web服务会挂起。添加一些日志后,我看到“基础连接已关闭: 无法为SSL/TLS安全通道建立信任关系。 根据验证过程,远程证书无效。在我的日志中 我在使用CreateIfNotExists()时也遇到过这种情况 这可能是什么原因造成的 我最近从1.7版升级到了存储客户端库的2版,但仍然看到了这种行为。这不是我以前遇到的问题,但是如果错误消息是准确

我正在使用对Windows Azure的评估订阅

有时,当我尝试访问CloudBlobContainer上的方法(如GetPermissions()时,web服务会挂起。添加一些日志后,我看到“基础连接已关闭: 无法为SSL/TLS安全通道建立信任关系。 根据验证过程,远程证书无效。在我的日志中

我在使用CreateIfNotExists()时也遇到过这种情况

这可能是什么原因造成的


我最近从1.7版升级到了存储客户端库的2版,但仍然看到了这种行为。

这不是我以前遇到的问题,但是如果错误消息是准确的,那么存储中的SSL证书就有问题。一种可能的解决方法是不使用SSL。如果您与同一数据中心中的存储帐户交谈,我认为这不会对安全性产生负面影响。您应该能够通过在连接字符串中将https更改为http来实现这一点


如果这确实有效,联系MS支持部门可能会有好处,这可能会指向他们那边的问题。

我将回答我自己的问题,希望它对其他人有用

问题是ServicePointManager.ServerCertificateValidationCallback的范围


它是静态的,并且会影响设置后遇到的CloudBlobContainer方法。

您是在与开发存储还是实际存储帐户交谈?我是在与web角色中的实际存储帐户交谈。当两者都在模拟器中运行和都在云中运行时,我看到了这种行为。我在这里也看到了同样的问题。可以这么说,自从我现在使用Azure几个月以来,它一直不太可靠。我想用一些更丰富多彩的比喻来描述这项服务,但我放弃了。我在服务仪表板上看到,由于SSL证书过期,今天出现了巨大的存储中断。那么,在ServerCertificateValidationCallback达到其目的后,如何“解除”它呢,这样它就不会影响以后的CloudBlobContainer方法了?我还没有对此进行彻底测试,但是您可以使用
ServicePointManager.ServerCertificateValidationCallback-=new RemoteCertificateValidationCallback(yourCallbackMehod)删除验证回调
或者-根据这个答案-.NET Framework 4.5在
HttpWebRequest
类上引入了一个
ServerCertificateValidationCallback
属性;几年前,它停止工作,我所做的就是从https改为http