gpt4 book ai didi

automapper - 当程序集依赖于 Automapper 时处理 onStart 时出现 NService Bus 异常

转载 作者:行者123 更新时间:2023-12-03 13:05:38 24 4
gpt4 key购买 nike

我们有一个程序集使用对 Automapper.dll 的引用。在启动时以订阅者身份启动 NServiceBus 失败,并显示以下消息:

Exception when starting endpoint, error has been logged. Reason: Could not load file or assembly 'file:///D:\Main\Src\Core\Core.MessageHandler\bin\Debug\AutoMapper.dll' or one of its dependencies. Operation is not supported. (Exception from HRESULT: 0x80131515)

堆栈跟踪:

Server stack trace: 
at Magnum.StateMachine.ExceptionActionDictionary`1.HandleException(T stateMachine, Event event, Object parameter, Exception exception)
at Magnum.StateMachine.EventActionList`1.Execute(T stateMachine, Event event, Object parameter)
at Magnum.StateMachine.EventActionBase`1.Execute(T instance, Event event, Object parameter)
at Magnum.StateMachine.State`1.RaiseEvent(T instance, BasicEvent`1 eevent, Object value)
at Magnum.StateMachine.StateMachine`1.RaiseEvent(Event raised)
at Topshelf.Internal.ServiceController`1.Start()
at Topshelf.Internal.IsolatedServiceControllerWrapper`1.Start()
at Topshelf.Internal.ServiceControllerProxy.Start()
at System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInContext, Object[]& outArgs)
at System.Runtime.Remoting.Messaging.StackBuilderSink.PrivateProcessMessage(RuntimeMethodHandle md, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInContext, Object[]& outArgs)
at System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage msg, Int32 methodPtr, Boolean fExecuteInContext)

Exception rethrown at [0]:
at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
at Topshelf.Internal.ServiceControllerProxy.Start()
at Topshelf.Internal.FacadeToIsolatedServiceController`1.Start()
at Topshelf.Internal.ServiceCoordinator.Start()
at Topshelf.Internal.Hosts.ConsoleHost.Run()
at Topshelf.Internal.Actions.RunAsConsoleAction.Do(IRunConfiguration configuration)
at Topshelf.Runner.Host(IRunConfiguration configuration, String[] args)
at NServiceBus.Host.Program.Main(String[] args)

文件“Automapper.dll”存在! Config中没有问题。我检查了这个删除对 AutoMapper.dll 的依赖并且它有效。

配置如下:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="MsmqTransportConfig"
type="NServiceBus.Config.MsmqTransportConfig, NServiceBus.Core" />
<section name="Logging" type="NServiceBus.Config.Logging, NServiceBus.Core" />
</configSections>

<MsmqTransportConfig
InputQueue="MyQueue@localhost"
NumberOfWorkerThreads="1"
MaxRetries="10"
ErrorQueue="ErrorQueue@localhost" />

<Logging Threshold="WARN" />

</configuration>

有什么想法吗? NServiceBus 中的 AutoMapper 依赖项是否存在已知问题?

最佳答案

在您的端点配置类 (IConfigureThisEndpoint) 中,通常也实现 IWantCustomInitialization。作为自定义初始化的一部分,您可以指定以下内容:

public void Init()
{
Configure.With(AllAssemblies.Except("Automapper.dll"))
.AutofacBuilder()
.Log4Net(); // etc.
}

“AllAssemblies.Except()”代码指示 NServiceBus 配置完全忽略 Automapper 程序集。

另一个可能导致该问题的潜在问题是,如果您使用的是针对 CLR v2.0 (.NET v3.5) 编译的 NServiceBus.Host.exe,而 Automapper 是针对 CLR v4.0 (.NET) 编译的4.0)。根据您的 CLR 版本,有多个 NServiceBus 版本。您可能需要尝试运行 CLR v4.0 版本,将 Automapper 更改为 .NET 3.5 版本(我认为该版本尚未积极开发)。

关于automapper - 当程序集依赖于 Automapper 时处理 onStart 时出现 NService Bus 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5742793/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com