Nachdem ich die Dokumentation durchgelesen und versucht habe, andere Beispiele von Entwicklern zu finden, die diesen Fehler bekommen, stehe ich ein bisschen fest. Wir arbeiten mit NServiceBus 6 und erhalten gelegentlich einen System.MethodAccessException
in unserem Message-Handler auf den Anruf return Task.CompletedTask
. Es scheint nur dann aufzutreten, wenn der Handler in einer Azure-Worker-Rolle bereitgestellt wird (im Gegensatz zur Ausführung im Emulator). Wir verwenden den Azure Service Bus-Transport.Warum wirft dieser NServiceBus-Nachrichtenhandler System.MethodAccessException beim Aufruf von Task.CompletedTask?
public Task Handle(UpdatePatientAccommodationCode message, IMessageHandlerContext context)
{
Console.WriteLine($"Handling [{message.GetType()}]");
var patientVisit = LoadByExternalPatientId(message.ClientId, message.ExternalPatientId);
var mappedEvent = patientVisit.HandleCommand(message);
if (patientVisit.IsEventAdded)
PatientVisitEventStore.Save(patientVisit);
return mappedEvent == null ? Task.CompletedTask : context.Publish(mappedEvent);
}
Die eigentliche Ausnahme sieht wie folgt aus:
System.MethodAccessException: Attempt by method 'XXX.Handlers.PatientVisitHandler.Handle(XXX.UpdatePatientAccommodationCode, NServiceBus.IMessageHandlerContext)' to access method 'System.Threading.Tasks.Task.get_CompletedTask()' failed.
at XXX.Handlers.PatientVisitHandler.Handle(UpdatePatientAccomm odationCode message, IMessageHandlerContext context) in PatientVisitHandler.cs: line 314
at NServiceBus.InvokeHandlerTerminator.Terminate(IInvokeHandlerContext context) in C:\BuildAgent\work\3206e2123f54fce4\src\NServiceBus.Core\Pipeline\Incoming\Invok eHandlerTerminator.cs: line 24
at NServiceBus.LoadHandlersConnector.<Invoke>d__1.MoveNext() in C:\BuildAgent\work\3206e2123f54fce4\src\NServiceBus.Core\Pipeline\Incoming\LoadH andlersConnector.cs: line 40
zu ersetzen. Welche Version von .NET Framework verwendet Ihre Worker-Rolle? –
Alles ist 4.6.1. Ich sehe Ihre Antwort unten und werde die Cloud-Service-Version überprüfen. –