对于我们即将发布的版本,我们已从 NServiceBus 3.0.3 升级到 3.2.7。我们在本地或 QA 测试期间没有遇到任何问题,但是在暂存环境中进行测试时,我们无法启动引用 NServiceBus 的 IIS 托管的 Web 服务。
分期机器使用与 QA 相同的软件;视窗 2008R2、IIS7.5
事件日志有两个错误。首先是事件 1026(.NET 运行时)
应用程序:w3wp.exe 框架版本:v4.0.30319 描述:进程因未处理的异常而终止。异常信息:NServiceBus.Unicast.Queuing.FailedToSendMessageException 堆栈:在 NServiceBus.Unicast.Queuing.Msmq.MsmqMessageSender.NServiceBus.Unicast.Queuing.ISendMessages.Send(NServiceBus.Unicast.Transport.TransportMessage, NServiceBus.Address) 在 NServiceBus.Unicast。 UnicastBus.SendSubscribeMessageWithRetries(NServiceBus.Address, NServiceBus.Unicast.Transport.TransportMessage, System.String, Int32) 在 NServiceBus.Unicast.UnicastBus+<> c_DisplayClass8.b_7(System.Object) 在 System.Threading.ExecutionContext.runTryCode(System.Object) 在 System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode, CleanupCode, System.Object) 在 System.Threading.ExecutionContext.Run(System.Threading .ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean) 在 System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem() 在 System.Threading.ThreadPoolWorkQueue.Dispatch() 在 System.Threading._ThreadPoolWaitCallback.PerformWaitCallback( )
随后是事件 1326 (ASP.NET 4.0.30319.0)
发生未处理的异常,进程终止。
应用程序 ID:默认域
进程号:10180
异常:System.Runtime.Serialization.SerializationException
消息:找不到程序集“NServiceBus.Core,版本=3.2.0.0,文化=中性,PublicKeyToken=9fc386479f8a226c”。
StackTrace:在 System.Runtime.Serialization.Formatters.Binary.BinaryAssemblyInfo.GetAssembly() 在 System.Runtime.Serialization.Formatters.Binary.ObjectReader.GetType(BinaryAssemblyInfo assemblyInfo, String name) 在 System.Runtime.Serialization.Formatters.Binary。 System.Runtime.Serialization.Formatters.Binary 的 ObjectMap..ctor(String objectName, String[] memberNames, BinaryTypeEnum[] binaryTypeEnumA, Object[] typeInformationA, Int32[] memberAssemIds, ObjectReader objectReader, Int32 objectId, BinaryAssemblyInfo assemblyInfo, SizedArray assemIdToAssemblyTable) ._ BinaryParser.ReadObjectWithMapTyped(BinaryObjectWithMapTyped 记录) 在 System.Runtime.Serialization.Formatters.Binary。_BinaryParser.Run()
在 System.Runtime.Serialization.Formatters.Binary.ObjectReader.Deserialize(HeaderHandler handler, __BinaryParser serParser, Boolean fCheck, Boolean isCrossAppDomain, IMethodCallMessage methodCallMessage) 在 System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream serializationStream, HeaderHandler handler , Boolean fCheck, Boolean isCrossAppDomain, IMethodCallMessage methodCallMessage) 在 System.AppDomain.Deserialize(Byte[] blob) 在 System.AppDomain.UnmarshalObject(Byte[] blob)
我检查了 bin 文件夹,它们确实包含正确版本的 NServiceBus.dll 和 NServiceBus.Core.dll(两者都是相同的版本,3.2.7)。
我感觉很困惑,我想我已经检查了明显的事情。会不会是它正在尝试加载多个版本的 NServiceBus(即一些未更新的参考?)。但是,这应该是 QA 中已经存在的问题?