我的 WCF 服务托管在 Windows 服务中。希望将服务类创建为单项,因此相应地提到了 WCF 服务类的 servicebehavior 属性。在 Windows 服务主机的 OnStart 上,我创建了这个类的一个实例,然后使用它来创建我的服务主机。Windows 服务的 OnStop,我在服务类上调用 dispose,因为我需要确保在创建服务类实例时(在 WCF 服务端)在 OnStart 期间创建的 Microsoft.Diagnostics.Tracing.Session.TraceEventSession 的处置。但是当尝试使用如下消息处理会话时出现异常。我的程序集都是 .net 4.6.1 版本,现在不能移动到 4.7。System.Diagnostic.Tracing.TraceEvent dll 是从 Nuget 引用的 2.0.26 版(在 WCF 服务和 BL dll 上,实际上维护会话对象的位置,WCF 服务引用)。然后我在 WCF 服务和 Windows 主机上再次安装了 System.Runtime nuget,版本为 4.3.0。
抛出异常:Microsoft.Diagnostics.Tracing.TraceEvent.dll 中的“System.IO.FileLoadException”
附加信息:无法加载文件或程序集“System.Runtime,Version=4.1.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a”或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(来自 HRESULT 的异常:0x80131040)。
如果需要更多信息来理解问题,请告知。