当前位置:  开发笔记 > 编程语言 > 正文

为什么这个NServiceBus消息处理程序在调用Task.CompletedTask时抛出System.MethodAccessException?

如何解决《为什么这个NServiceBus消息处理程序在调用Task.CompletedTask时抛出System.MethodAccessException?》经验,为你挑选了1个好方法。

在查看文档并尝试查找开发人员遇到此错误的其他示例后,我有点卡住了.我们正在使用NServiceBus 6,偶尔会System.MethodAccessException在我们的消息处理程序中收到一个return Task.CompletedTask.它似乎只在处理程序部署在Azure辅助角色中时发生(而不是在模拟器中运行).我们正在使用Azure Service Bus传输.

  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);
    }

实际的异常如下所示:

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.d__1.MoveNext() in     C:\BuildAgent\work\3206e2123f54fce4\src\NServiceBus.Core\Pipeline\Incoming\LoadH   andlersConnector.cs: line 40

Sean Feldman.. 6

我怀疑你的代码本地有.NET framework 4.6.x支持Task.CompletedTask.当您部署到CS并使用OS系列时,不到版本5将不支持4.6.x您将需要使用启动任务来安装4.6.x或迁移到OS系列5(Server 2016).



1> Sean Feldman..:

我怀疑你的代码本地有.NET framework 4.6.x支持Task.CompletedTask.当您部署到CS并使用OS系列时,不到版本5将不支持4.6.x您将需要使用启动任务来安装4.6.x或迁移到OS系列5(Server 2016).

推荐阅读
mobiledu2402852413
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有