【发布时间】:2023-01-04 21:11:12
【问题描述】:
我在使用 .NET 远程处理时遇到了一个奇怪的异常,异常消息如下:
“二进制流‘0’不包含有效的 BinaryHeader。可能的原因是序列化和反序列化之间的无效流或对象版本更改。”
我在这个代码块中遇到了这个异常:
static bool _isUsable=false;
if(_isUsable)
{
IExchange exchangeObject = (IExchange)Activator.GetObject(typeof(IExchange), "tcp://localhost:24001/ExchangService");
if (exchangeObject != null)
{
try
{
var result = exchangeObject.GetPrise(20);
}
catch (Exception exp)
{
var testMessage = exp.Message;
}
}
else
{
var testMessage = "object is null";
}
}
这个问题的奇怪部分是,如果我删除 if(_isUsable) 块,.NET 远程处理将无一例外地完成。
【问题讨论】:
-
当然,此时_isUsable参数为真。