我在使用.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远程处理将毫无例外地完成。
1条答案
按热度按时间nbysray51#
我在一个用于反射模式的DLL中使用了这个代码块,我将DLL类改为静态,这个问题就解决了。