2009-07-22 72 views
5

私のASP.NETアプリケーションでは、RemotingConfiguration.Configure()を呼び出してクライアントのリモートチャネルを構成するグローバルアプリケーションの開始イベントに行があります。リモートチャネルが既に登録されているかどうかを判断する方法

これがうまく初めて動作しますが、私のWebアプリケーションをリサイクル取得すると、アプリケーションはイベントが、次のリモート処理例外を発生させ、再び発射される開始:例外「System.Runtime.Remoting.RemotingExceptionで失敗しました

Remotingの構成:チャネル 'tcp'は既に登録されています。

チャンネルが既に設定されているかどうかを検出して、この例外が発生しないようにしたいと考えています。

答えて

0

しかし、すでに登録されていればどうしますか?

いずれにしても、.NET RemotingがWCFのために推奨されなくなったことを知りたがっています。

+0

を持っています例外。 –

+0

しかしそれはあなたには登録されませんでしたか? –

+0

当社のソフトウェアに登録されます。私が推測することは、リモートチャネルを初めて登録すると、w3wp.exeプロセス用に登録されるということです。 Webアプリケーションのリサイクル時にプロセスが再起動されないため、application_startイベントからの2回目の構成呼び出しによって例外が発生します。 –

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 

あり、それは私がそれがすでに登録されたことを知っていたならば、私は避けるためにRemotingConfiguration.Configure()を呼び出すことはありません私のために

関連する問題