Ответ 1
В качестве временной меры я смог войти в портал azure и изменить часть протокола строки подключения с https на http.
Сертификат для нашего хранилища Azure blob истек уже сегодня. Это не сертификат, предоставленный нами, а предоставленный Microsoft, как показано на рисунке ниже. Как можно это исправить? Я попытался найти решение, но ничего не нашел. Наше приложение не может подключиться к хранилищу по истечении срока действия сертификата, и мы получаем сообщение об ошибке: Не удалось установить доверительные отношения для безопасного канала SSL/TLS
В качестве временной меры я смог войти в портал azure и изменить часть протокола строки подключения с https на http.
Еще два возможных решения, если вы можете использовать RDP в своих ролях.
ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
(подсказка для AlexNS на форумах MSDN для идеи № 2 и Jason Vallery для кода обратного вызова проверки сертификата)
Как отмечено в комментариях, отключение HTTPS и/или игнорирование ошибок проверки сертификатов могут поставить под угрозу безопасность ваших сообщений. Поэтому подумайте, прежде чем это сделать, и измените его, как только Microsoft устранит эту проблему.
Мы смогли уклониться от большей части этого, в первую очередь, посредством явного использования конечных точек HTTP для хранения (мы не храним ничего слишком чувствительного там).
Если вы находитесь в аналогичной ситуации и можете делать с конечными точками HTTP, есть обходное решение, которое позволяет вам обновлять свои роли постоянно. Он включает развертывание Azure Powershell с локальными пакетами и, похоже, работает даже тогда, когда обновления через оба портала продолжают сбой.
Как примечание - если вы переключитесь на http из https, тогда механизм передачи больше не гарантирует правильность передачи данных, и вам может потребоваться проверить MD5 блоба.
StorageClient < 2.0 управляет этим иногда с загрузкой, но читает эту статью, никогда не скачивая.
Для StorageClient 2.0 вам может потребоваться изменить BlobRequestOptions на UseTransactionalMD5 (как описано здесь)