2016-11-03 3 views
0

I neuestes WindowsAzure.ServiceBus nuget Paket und einfachen Code-Snippet verwenden, um Nachrichten zu Azure EventHub von meiner Cloud Service WebRole api Controller senden:Azure EventHub Absender nicht zum Senden von Nachrichten

var eventData = new EventData(buffer) { PartitionKey = partition }; 
await _eventHubClient.SendAsync(eventData); 

Nach einer Weile nicht Absender Nachrichten senden und ich sehe folgende Ausnahmen in Protokollen jedes Mal, wenn ich versuche, eine Nachricht zu senden:

Microsoft.ServiceBus.Messaging.MessagingCommunicationException: 
An error occurred during communication with 'N/A'. Check the connection information, then retry. 
---> System.InvalidOperationException: Failed with error code 0xe. 
Server stack trace: at Microsoft.ServiceBus.Tracing.EventSource..ctor(Boolean disableTracing) 
    at Microsoft.ServiceBus.Tracing.MessagingClientEtwProvider.get_Provider() 
    at Microsoft.ServiceBus.Messaging.Amqp.Sasl.SaslTransportProvider.AddHandler(SaslHandler handler) 
    at Microsoft.ServiceBus.Messaging.Amqp.AmqpTransportSettings.CreateAmqpSettings(String sslHostName, Int32 maxFrameSize, Boolean forceTokenProvider) 
    at Microsoft.ServiceBus.Messaging.Amqp.AmqpMessagingFactory.ConnectAsyncResult.<GetAsyncSteps>d__13.MoveNext() 
    at Microsoft.ServiceBus.Messaging.IteratorAsyncResult`1.EnumerateSteps(CurrentThreadType state) at Microsoft.ServiceBus.Messaging.IteratorAsyncResult`1.Start() Exception rethrown at [0]: 
    at Microsoft.ServiceBus.Common.ExceptionDispatcher.Throw(Exception exception) at Microsoft.ServiceBus.Common.AsyncResult.End[TAsyncResult](IAsyncResult result) 
    at Microsoft.ServiceBus.Messaging.Amqp.AmqpMessagingFactory.ConnectAsyncResult.End(IAsyncResult result, ConnectInfo& info) 
    at Microsoft.ServiceBus.Messaging.Amqp.FaultTolerantObject`1.CreateAsyncResult.<>c.<GetAsyncSteps>b__5_1(CreateAsyncResult thisPtr, IAsyncResult r) 
    at Microsoft.ServiceBus.Messaging.IteratorAsyncResult`1.EnumerateSteps(CurrentThreadType state) 
Exception rethrown at [1]: 
    at Microsoft.ServiceBus.Common.ExceptionDispatcher.Throw(Exception exception) at Microsoft.ServiceBus.Common.AsyncResult.End[TAsyncResult](IAsyncResult result) 
    at Microsoft.ServiceBus.Messaging.Amqp.FaultTolerantObject`1.OnEndCreateInstance(IAsyncResult asyncResult) 
    at Microsoft.ServiceBus.Messaging.SingletonManager`1.EndGetInstance(IAsyncResult asyncResult) 
    at Microsoft.ServiceBus.Messaging.Amqp.AmqpMessagingFactory.OpenLinkAsyncResult.<>c.<GetAsyncSteps>b__35_3(OpenLinkAsyncResult thisPtr, IAsyncResult r) 
    at Microsoft.ServiceBus.Messaging.IteratorAsyncResult`1.EnumerateSteps(CurrentThreadType state) 
--- End of inner exception stack trace --- 
    at Microsoft.ServiceBus.Common.ExceptionDispatcher.Throw(Exception exception) at Microsoft.ServiceBus.Common.AsyncResult.End[TAsyncResult](IAsyncResult result) 
    at Microsoft.ServiceBus.Messaging.Amqp.FaultTolerantObject`1.OnEndCreateInstance(IAsyncResult asyncResult) 
    at Microsoft.ServiceBus.Messaging.SingletonManager`1.EndGetInstance(IAsyncResult asyncResult) 
    at Microsoft.ServiceBus.Messaging.Amqp.AmqpMessageSender.OnEndOpen(IAsyncResult result) 
    at Microsoft.ServiceBus.Messaging.ClientEntity.EndOpen(IAsyncResult result) 
    at Microsoft.ServiceBus.Messaging.OpenOnceManager.OnEndCreateInstance(IAsyncResult asyncResult) 
    at Microsoft.ServiceBus.Messaging.SingletonManager`1.EndGetInstance(IAsyncResult asyncResult) 
    at Microsoft.ServiceBus.Messaging.OpenOnceManager.OpenOnceManagerAsyncResult`1.OpenComplete(IAsyncResult result) 
    at Microsoft.ServiceBus.Messaging.OpenOnceManager.OpenOnceManagerAsyncResult`1..ctor(OpenOnceManager openOnceManager, TimeSpan openTimeout, AsyncCallback callback, Object state, Func`3 beginOperation, EndOperation`1 endOperation) 
    at Microsoft.ServiceBus.Messaging.OpenOnceManager.Begin(AsyncCallback callback, Object state, Func`3 beginOperation, Action`1 endOperation) 
    at Microsoft.ServiceBus.Messaging.MessageSender.BeginSendEventData(TrackingContext trackingContext, IEnumerable`1 eventDatas, TimeSpan timeout, AsyncCallback callback, Object state) at Microsoft.ServiceBus.Messaging.EventHubClient.<>c__DisplayClass32_0.<SendAsync>b__0(AsyncCallback c, Object s) 
    at System.Threading.Tasks.TaskFactory`1.FromAsyncImpl(Func`3 beginMethod, Func`2 endFunction, Action`1 endAction, Object state, TaskCreationOptions creationOptions) 
    at Microsoft.ServiceBus.Common.Parallel.TaskHelpers.CreateTask(Func`3 begin, Action`1 end, Object state) 
--- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 
    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 

Scheint einmal Sender stolpern auf diesem Fehler kann es keine Nachrichten mehr senden.

+0

Klingt wie eine fehlerhafte Verbindung. Hast du kontrolliert? –

+0

@PeterBons Es sieht eher wie ein Problem bei der Erstellung von 'EventSource' aus, wenn versucht wird, ein Etw-Ereignis hinzuzufügen und nichts mit einer Verbindung oder dem Senden einer Nachricht zu tun hat –

Antwort

0

Fehlercode 0xE ist ERROR_OUTOFMEMORY von der Ablaufverfolgung. Als Workaround können Sie entweder die Webrolleninstanz vergrößern oder die Ablaufverfolgung vollständig deaktivieren.

Ich habe einen Fehler, um dies auf unserem Client zu beheben. Grundsätzlich sollten Messaging-Operationen aufgrund von Trace-Problemen nicht fehlschlagen.

Verwandte Themen