2009-07-22 97 views
5

在我的ASP.NET应用程序中,我通过调用RemotingConfiguration.Configure(),在全局应用程序启动事件中有一行配置客户端远程处理通道。如何确定远程处理通道是否已经注册

这种运作良好,是第一次,但是当我的web应用程序得到回收,应用程序启动事件再次发射造成以下远程异常:

远程处理配置失败,异常“System.Runtime.Remoting.RemotingException :通道'tcp'已经注册。

我想检测通道是否已经配置好,这样我就可以避免出现这个异常。

回答

0

但是,如果您发现它已经注册,你会怎么做?

在任何情况下,我只是想确保您知道.NET Remoting已被弃用,以支持WCF。

+0

如果我知道它已经登记的,我不会把RemotingConfiguration.Configure(),以避免例外。 – 2009-07-22 18:45:22

+0

但它不会被注册到_you_,会吗? – 2009-07-22 19:06:01

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 

我希望这对你的作品,这对我来说

相关问题