- PR -

IPCチャネルを使ったリモーティングについて

1
投稿者投稿内容
へるまろ
ベテラン
会議室デビュー日: 2003/02/04
投稿数: 57
お住まい・勤務地: 東京
投稿日時: 2006-09-05 19:00
現在同一PC上にWinアプリとWinサービスを配置しています。

ここでWinアプリからWinサービスに対して.NET Remotingを使って通信を行っているのですが、IPCチャネルを使った時に、
「IPC ポートに接続できません。アクセスが拒否されました。」
というエラーになってしまいます。
ちなみにTCPチャネルであれば問題なく通信が出来ています。

サンプルとして利用しているコードは以下になります。

コード:


[Server側]
protected override void OnStart(string[] args)
{
IpcChannel ipcCh = new IpcChannel("Server");
ChannelServices.RegisterChannel(ipcCh, false);

RemotingConfiguration.RegisterWellKnownServiceType(typeof(RemoteProxy),
"RemotingServer",
WellKnownObjectMode.SingleCall);
}

[Client側]
IpcChannel chan = new IpcChannel("Client");
ChannelServices.RegisterChannel(chan, false);
RemoteProxy proxy = (RemoteProxy)Activator.GetObject(typeof(RemoteProxy),
"ipc://Server/RemotingServer");

proxy.SendMessage(list); // ←ここでRemotingExceptionが発生

[リモートオブジェクト定義]
public class RemoteProxy : MarshalByRefObject
{
public void SendMessage(List<object> list){ ... }
}




もし対応方法をご存知あれば、教えて頂けませんでしょうか?

開発環境はVSTS + WinXP Pro SP2です。

宜しくお願い致します。



[ メッセージ編集済み 編集者: Doutor 編集日時 2006-09-05 19:05 ]
ue
ぬし
会議室デビュー日: 2005/05/07
投稿数: 581
お住まい・勤務地: 広島市
投稿日時: 2006-09-05 22:59
こんばんは。

.NET Framework 2.0 の IPC による .NET Remoting は SSPI ベースで認証を制御するみたいです。

サーバ側のコードで ACL の設定をどうにかすれば何とかなるのではないでしょうか。

IpcChannel のリモート処理の技術サンプル からサンプルのソリューションをダウンロードできます。

MSDN TV の What's New in .NET Remoting for .NET Framework 2.0 も IpcChannel の認証について触れています。
_________________
上本亮介 (ue) @ わんくま同盟
Microsoft MVP for VSTO (Jul 2008 - Jun 2009)
Hello Another World!
.NET 勉強会 / ヒーロー島
へるまろ
ベテラン
会議室デビュー日: 2003/02/04
投稿数: 57
お住まい・勤務地: 東京
投稿日時: 2006-09-06 14:34
ueさん、レスをありがとうございます。

サーバー側でACL設定を変更してやることで、無事接続できました。
ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)