在我的ASP.NET应用程序中,我在全局应用程序启动事件中有一行,它通过调用RemotingConfiguration.Configure()来配置客户端远程处理通道。
第一次运行良好,但是当我的Web应用程序被回收时,应用程序启动事件再次被触发,导致以下远程处理异常:
远程处理配置失败,异常为'System.Runtime.Remoting.RemotingException:通道'tcp'已经注册。
我想检测通道是否已配置,以便我可以避免出现此异常。
答案 0 :(得分:5)
尝试使用ChannelServices.RegisteredChannels
答案 1 :(得分:4)
我也遇到过这个问题。
问题是您可以停止调用RemotingConfiguration.Configure()的应用程序,但这不会使通道可用。它与端口有关,或者它可能只是通道的名称,我不确定。
我发现似乎有效的解决方案是获取已注册的频道并取消注册您要删除的频道。
这是一些代码
RemotingConfiguration.Configure(appConfig, false);
// do this to unregister the channel
IChannel[] regChannels = ChannelServices.RegisteredChannels;
IChannel channel = (IChannel)ChannelServices.GetChannel(regChannels[0].ChannelName);
ChannelServices.UnregisterChannel(channel);
RemotingConfiguration.Configure(appConfig, false); // this is just a test to see if we get an error
我希望这适合你,它适合我
答案 2 :(得分:0)
但如果你发现它已经注册了,你会怎么做?
无论如何,我只是想确保你知道.NET Remoting已被弃用而不赞成WCF。