c# - 仅在接收数据时出现 IPC 反序列化异常?发送工作正常
问题描述
我有一个问题,我真的不能落后。我有两个程序,通过 IPC 使用 BinaryFormatting 进行通信。我将客户端和服务器类放在同一个程序集中,包括所有用于传输数据的类。
我不明白的是,为什么当我试图接收一个对象但发送一个对象时,我会收到一个带有“未找到程序集”的序列化异常。
因此,如果 IPC 客户端调用返回我的配置类的方法“Config GetConfig()”,则会引发异常。当我调用方法“SetConfig(Config config)”时,配置到达 IPC 服务器没有任何问题。
我已经尝试切换到 SoapFormatter 而不是 Binary 并尝试使用接口而不是类。所有的结果都是一样的。发送数据工作正常,获取数据会引发反序列化异常。
有人可以给我一个提示,我该如何解决这个问题?或者至少要寻找什么来解决它?
解决方案
所以在问了这个问题一段时间后,我终于找到了问题和解决方案。问题是,我的客户是 COM-Component 的一部分,并且一个帖子为我指明了方向,binaryformatter 并不关心已经加载的程序集。看起来它总是试图从 AppDomain.CurrentDomain.BaseDirectory 解析程序集,这是可执行文件的路径,在我的情况下是前景。
所以解决方案是绑定到 appdomain 中的 AssemblyResolve-Event,从正确的目录解析程序集。
如果其他人有同样的问题,希望这会有所帮助。
推荐阅读
- php - 在 AWS Lightsail Magento Stack 中设置和访问 PHP-FPM 状态页面
- azure-active-directory - 如何在 azure 活动目录中获取用户角色?asp.net core 5.0 blazor
- jsx - 如何让 ES6 模块和 JSX 在没有服务器端构建的情况下工作?
- java - 无法让 log4j2 备份到文件
- arrays - reactjs中如何显示数组数据?
- r - 闪亮的应用程序部署错误构建滑块 (0.2.1)
- javascript - 我的 Javascript forEach 循环有什么问题?
- javascript - frappe 甘特图错误(小时模式):错误:
属性 x:预期长度,“NaN” - amazon-s3 - 我在使用带有 java 应用程序的 AWS Java SDK 时遇到运行时错误
- terraform - Terraform 计划错误 - 缺少预期 {