首次成功后,Web应用程序无法找到程序集Microsoft.ServiceBus

时间:2015-02-09 16:20:28

标签: c# .net servicebus

我们在使用Microsofts ServiceBus作为队列的MVC webapplication项目中。客户下订单然后由后端系统处理,完成后通过服务总线将响应发送回WebApp。

我们第一次触发此流程时一切正常。第二次执行流时,WebApplication出现以下错误:

Application ID: DefaultDomain

Process ID: 3504

Exception: System.Runtime.Serialization.SerializationException

Message: Unable to find assembly 'Microsoft.ServiceBus, Version=2.4.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'.

StackTrace:    at System.Runtime.Serialization.Formatters.Binary.BinaryAssemblyInfo.GetAssembly()
   at System.Runtime.Serialization.Formatters.Binary.ObjectReader.GetType(BinaryAssemblyInfo assemblyInfo, String name)
   at 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)
   at System.Runtime.Serialization.Formatters.Binary.ObjectMap.Create(String name, String[] memberNames, BinaryTypeEnum[] binaryTypeEnumA, Object[] typeInformationA, Int32[] memberAssemIds, ObjectReader objectReader, Int32 objectId, BinaryAssemblyInfo assemblyInfo, SizedArray assemIdToAssemblyTable)
   at System.Runtime.Serialization.Formatters.Binary.__BinaryParser.ReadObjectWithMapTyped(BinaryObjectWithMapTyped record)
   at System.Runtime.Serialization.Formatters.Binary.__BinaryParser.Run()
   at System.Runtime.Serialization.Formatters.Binary.ObjectReader.Deserialize(HeaderHandler handler, __BinaryParser serParser, Boolean fCheck, Boolean isCrossAppDomain, IMethodCallMessage methodCallMessage)
   at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream serializationStream, HeaderHandler handler, Boolean fCheck, Boolean isCrossAppDomain, IMethodCallMessage methodCallMessage)
   at System.Runtime.Remoting.Channels.CrossAppDomainSerializer.DeserializeObject(MemoryStream stm)
   at System.AppDomain.Deserialize(Byte[] blob)
   at System.AppDomain.UnmarshalObject(Byte[] blob)

如果我们重新启动应用程序池和站点,一切都回到原点。它第一次工作,但后来失败了。我们只会在即将发布的新实时环境中使用此行为。一切都在当地和我们当前的现场环境中运作。所以这必须与环境有关。我们现场拥有环境,只有ServiceBus在Azure中。

ServiceBus:“WindowsAzure.ServiceBus”version =“2.4.8.0”。我也试过版本2.6.0,结果相同。

新环境与旧环境不同的一点是它是Windows 2012服务器而不是2010,以及IIS 8而不是IIS 7.新环境中的硬件资源处于良好水平。

1 个答案:

答案 0 :(得分:0)

我们遇到了同样的问题,并通过安装

解决了这个问题
  • HTTP激活
  • TCP激活

在.NET Framework 4.5功能

祝你好运, 弗兰克