私の問題はHow to receive message from a private workgroup queueと似ています(基本的には同じコードを使用しています)。MSMQの問題リモートプライベートキューの読み込み
私はqueue.send()およびキューを使用してデータを読み込む/
var queue = new MessageQueue(@"FormatName:DIRECT=TCP:xxx.xxx.xxx.xxx\PRIVATE$\MyNewPrivateQueue");
と書き込みをリモートマシン上のキューを開く
MessageQueue.Create(@".\Private$\MyNewPrivateQueue");
使用して、ホスト・マシン上のキューを作成しています。受信()
私は2つのシステムを試しています。
- Windows 7のホームプレミアムのx64
- のWindows XP SP3
私はW7システム上で専用キューを作成し、参照ごとにXPシステム(からキューを読み取り、書き込みしてみてください質問)、読み取り操作で「メッセージキューサービスが利用できません」という例外が発生して失敗します。
しかし、システムをリバースすると(XPシステムでキューを作成し、W7システムから読み書きし、同じコードを使用すると)、は期待どおりに動作します
私が通じてきました:
- Reading Messages from Remote Queues
- Understanding how MSMQ security blocks RPC traffic
- Getting MSMQ messages out of Windows Server 2008 remotely
- Clear the way - MSMQ coming through
- MSMQ 3.0 too secure for you?
私も試してみましたW7とXPのファイアウォールをオフにして、すべての人とその犬にキューのすべての権限を与えてもらっても無駄です。
キューホストとしてXPでは動作しますが、ホストとしてW7で動作するわけではありませんが、セキュリティ上の問題でありコードの問題ではないと思います。しかし私の人生では、W7のどこが詰まっているのかわかりません。
EDIT 8/9
OK ...私はリモート専用キューからメッセージを読み取ることができる
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSMQ\Parameters\Security\AllowNonauthenticatedRPC
を追加します。しかし、これは、利用可能なプライベートキューを列挙することを許容しないように思われる。それでこのアイデアはどんなアイディアですか?
いいえ、奇妙ではありません。キューとの間での送受信は、全く異なるネットワークプロトコルを使用します。 MSMQ(およびHTTP)プロトコルは、メッセージを送信/プッシュするためのものです。 RPCプロトコルは、メッセージを受信/プルするためのものです。これらのプロトコルは、本当にチョークとチーズであり、全く異なるトラブルスポットがあります。 –
@ジョン.. OKは2つの異なるプロトコルを使用していることがわかります。これは読み書きのための異なる動作を意味するので、想像以上に奇妙ではありません。一方、全く異なる2つのプロトコル;-) –
はい:-) MSMQは、インターネットが登場する前に、コーポレートLANのプッシュ技術として1990年代半ばに設計されました。 RPCは既に利用可能であったため、再構築する必要はありません。 MSMQが過去5〜10年で設計されていれば、それは非常に異なるでしょう。 –