|
分類:[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 にしても動かないんだよな・・・
長文失礼いたしました。
|