C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[1]: IPCを使用した.NET リモートの例外について


(過去ログ 116 を表示中)

[トピック内 2 記事 (1 - 2 表示)]  << 0 >>

■68384 / inTopicNo.1)  IPCを使用した.NET リモートの例外について
  
□投稿者/ 高橋 (1回)-(2013/10/17(Thu) 20:52:30)

分類:[C#] 

<環境>
.Net Framework 4.0
VS 2012

現在、以下のような構成のアプリを作っています。

ホストの Windowsアプリ(NCV ニコ生コメントビュア)

プラグイン ← ※ このプラグインが、今作っているアプリです(クラスライブラリです)。

やりたいことは「プラグインと他のアプリ(これは自作)で IPC でプロセス間通信を行いたい」です。
まず、最初はうまく動きましたので順序立てて説明させていただきますと・・・

-------------------------------------------------------------
(1) 動いた例

OS が Windows 7 SP1 32bit の場合は、問題なく動作いたしました。
これで、問題なかったので 64bit で試してみることにしました。

-------------------------------------------------------------
(2) 動かない例

OS Windows 7 SP1 64bit の場合以下のような症状が発生して ? となっています。

例外の発生箇所は、以下の部分です。

ChannelServices.RegisterChannel(new IpcClientChannel(), true);

ここで例外「RemotingException チャネルが既に登録されています。」がスローされます。

# もちろんこのチャンネルは登録されていないので、(確認してみたら登録されていなかった)
# なにか別な要因があるのでは?とは思っております。

なぜ 32bit OS で動いて、64bit OS では動かないのでしょうか?
そう思い込んでいるだけで、OS の違いではなく別な問題なのでしょうか?
ヒントでも結構なのでご教授願えたらと思います。

# ちなみに ChannelServices.RegisterChannel(new IpcServerChannel("test"), true);
# でもダメです。
# HTTP や TCP では成功するようですが、通信するとハングしてしまいます。

# 普通にアプリ同士では問題なく動作しましたので、
# プラグイン(クラスライブラリ)からのリモートは動かない?とか思ってみたりしています。

# また、ホストの Windowsアプリ(NCV ニコ生コメントビュア) は、 x86 で C# で製作されたものなようです。
# そこで、それに合わせて今回制作中のプラグインも、その他のアプリも x86 でビルドしています。
# でも、x64、Any CPU にしても動かないんだよな・・・

長文失礼いたしました。

引用返信 編集キー/
■68389 / inTopicNo.2)  Re[1]: IPCを使用した.NET リモートの例外について
□投稿者/ 高橋 (2回)-(2013/10/18(Fri) 11:36:48)
自己解決です。

念のため、以下のコードで登録されているチャネルをもう一度調べてみました。

var chs = ChannelServices.RegisteredChannels;

foreach(var ch in chs)
{
    System.Windows.Forms.MessageBox.Show(ch.ChannelName);
}

ipc client
ipc server

が検出されました・・・すいませんでした! 本当に登録済みでした。
最初に確認したと思ったのですが・・・私の勘違いでした。

で、ChannelServices.RegisterChannel(_channel, true); をコメントアウトしてみたところ問題なく動作いたしました。
そこで、チャネルを確認して登録されていないようであれば登録するように変更することにしました。

私の確認不足で至らない質問となってしまい、誠に申し訳ありませんでした。 m(_ _)m

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -