作者:keyu5182702936453 | 来源:互联网 | 2023-05-17 18:07
在客户端读取配置文件client.exe.config注册通信通道当配置文件修改过后,想不关闭应用程序,重新读取配置文件,注册通道,但出现下面提示:远程处理配置失败,异常为Sys
在客户端读取配置文件 client.exe.config 注册通信通道
当配置文件修改过后,想不关闭应用程序,重新读取配置文件,注册通道,但出现下面提示:
远程处理配置失败,异常为 System.Runtime.Remoting.RemotingException: 信道 http 已注册
于是我使用
foreach (IChannel eachChannel in channels)
{
ChannelServices.RegisterChannel(eachChannel );
}
也不行,又能提示:
试图重定向类型“UserLibrary.ClassA, UserLibrary”的激活,而该类型已被重定向。
问各位高手,该如何是好?
7 个解决方案
foreach (IChannel c in ChannelServices.RegisteredChannels)
{
ChannelServices.UnregisterChannel(c);
}
foreach (IChannel eachChannel in channels)
{
ChannelServices.RegisterChannel(eachChannel );
}
tiaoci(我挑刺,我快乐) :
你把
foreach (IChannel eachChannel in channels)
{
ChannelServices.RegisterChannel(eachChannel );
}
改为
RemotingConfiguration.Configure ("Client.exe.config");
试试
,会出现我说的
"试图重定向类型“UserLibrary.ClassA, UserLibrary”的激活,而该类型已被重定向。"
说明释放的还是不够砌底
因为 Client.exe.config中的远程服务的IP或者 端口会被用户修改,所以我需要重新读一次配置文件
RemotingConfiguration.Configure ("Client.exe.config");
客户端无法注销Wellknow的那些类型的,可以使用
RegisterActivatedClientType,这个可以注册多个
然后创建对象的时候指定使用哪个
object[] url = new object[]{new UrlAttribute("类型的URL")};
Activator.CreateInstance(typeof(YourType),null,url);