QBO3队列服务无法加载文件或程序集

时间:2017-06-23 14:39:28

标签: asp.net iis windows-services

在最近部署之后,QBO3队列服务开始将以下异常记录到Windows事件查看器中:

  

ProcessTimerElapsed中的错误;错误处理经理;   QueueManager.Process; QueueManager.Initialize;初始化时出错   QueueManager QBO中的模块;无法初始化配置   QBO /对象类型;无法初始化qbo / Abstract的配置;   无法初始化qbo / ConfigurationEntry的配置;可以   不加载文件或程序集' Newtonsoft.Json,Version = 10.0.0.0,   Culture = neutral,PublicKeyToken = 30ad4fe6b2a6aeed'或其中一个   依赖。定位程序集的清单定义没有   匹配程序集引用。 (HRESULT异常:0x80131040)

Newtonsoft.Json的正确版本安装在:

  • C:\的Inetpub \ wwwroot的\ BIN
  • c:\ program files \ Quandis \ qbo Queue Service

1 个答案:

答案 0 :(得分:0)

此问题的根本原因是Newtonsoft.Json的较旧副本(在本例中为第9版)存在于网站的根文件夹中。

此错误表现在队列服务上,但与Web服务器无关,因为队列服务和IIS处理应用程序域的方式略有不同:

  • IIS将先绑定到\ bin文件夹中的DLL
  • 队列服务将绑定到\ bin文件夹
  • 之前的根目录中的DLL

在网站(根文件夹或子文件夹)中保留Web组件的备份副本是不明智的。代替:

  • 确保旧版本是源控制的,因此不需要本地备份,或
  • 备份到网站以外的位置