2016-02-17 3 views
0

У нас есть роль рабочего Azure, которая обращается к сообщениям с темы Azure Service Bus Topic. Этот процесс читает несколько сообщений из одной темы &, отправляя сообщение в другую тему.Ошибка соединения служебной шины Azure с ролью рабочего

Это работало до сих пор. Вдруг мы становимся ниже ошибки.

Подключенное соединение было закрыто: произошла непредвиденная ошибка при приеме. ---> System.Net.WebException: Основное соединение было закрыто: произошла непредвиденная ошибка при получении. ---> System.ComponentModel.Win32Exception: клиент и сервер не могут общаться, потому что они не имеют общего алгоритма в System.Net.SSPIWrapper.AcquireCredentialsHandle (SSPIInterface SecModule, пакет String, намерение CredentialUse, SecureCredential scc) в системе .Net.Security.SecureChannel.AcquireCredentialsHandle (CredentialUse credUsage, secureCredential & secureCredential) на System.Net.Security.SecureChannel.AcquireClientCredentials (байт [] & Thumbprint) в System.Net.Security.SecureChannel.GenerateToken (байт [] вход , Int32 offset, Int32 count, Byte [] & output) в System.Net.Security.SslState.StartSendBlob (байт [] входящий, число Int32, AsyncProtocolRequest asyncRequest) на System.Net.Securi ty.SslState.ForceAuthentication (Boolean receiveFirst, Байт [] Буфер, AsyncProtocolRequest AsyncRequest) на System.Net.Security.SslState.ProcessAuthentication (LazyAsyncResult lazyResult) на System.Threading.ExecutionContext.RunInternal (ExecutionContext ExecutionContext, ContextCallback обратного вызова, объект состояния , булева preserveSyncCtx) на System.Threading.ExecutionContext.Run (ExecutionContext ExecutionContext, ContextCallback обратного вызова, состояние объекта, Boolean preserveSyncCtx) на System.Threading.ExecutionContext.Run (ExecutionContext ExecutionContext, ContextCallback обратного вызова, объект состояния) в System.Net .TlsStream.ProcessAuthentication (результат LazyAsyncResult) в System.Net.TlsStream.BeginWrite (буфер Byte [], смещение Int32, размер Int32, AsyncCallback asyncCallback, объект asyncState) на System.Net.ConnectStream.WriteHeaders (булево асинхронной) --- Конец внутренней трассировки стека исключений --- в System.Net.HttpWebRequest.EndGetResponse (IAsyncResult AsyncResult) в Microsoft.ServiceBus.Messaging.ServiceBusResourceOperations.GetAsyncResult 1.b__49(GetAsyncResult 1 thisPtr, IAsyncResult г) на Microsoft.ServiceBus.Messaging.IteratorAsyncResult`1.StepCallback (IAsyncResult результат)

Некоторые другие детали для окружающей среды

.Net Framework - 4.0 работник Роль osFamily = "3 "и osVersion =" * "

Мы пробовали следующие опции:

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls;

Но это не решило проблему.

Благодаря Dharam

ответ

0

ли ошибка прерывистый или всегда происходит?

Поскольку osVersion помечено как «*», это означает, что обновления для гостевых os автоматически устанавливаются, поэтому подозревается, что роль рабочего Azure установлена ​​с последними гостевыми обновлениями.

Из приведенной ниже ссылки видно, что последняя гостевая ОС приносит с собой .Net версию 4.5.2 вместо 4.5. Поэтому я подозреваю, что проблема связана с новой версией .Net, которая может вызвать эту проблему. https://azure.microsoft.com/en-us/documentation/articles/cloud-services-guestos-update-matrix/

Итак, вы можете попробовать вернуться к старой версии гостевой ОС, скажем «Release 201511-01». Эта версия может быть легко обновлена ​​с портала Azure в разделе «Конфигурация».

Попробуйте это и проверьте, устраняет ли это проблему. Сохраните опубликованную тему.