自分のユーザーアカウントで作成したローカルマシンにパブリックメッセージキューがあります。企業サービスアカウントの下で動作するローカルマシン上にWindowsサービスもあります。サービスアカウントがキューにフルアクセスできるようにしましたが、サービスが実行されているときにキューのメッセージを読み取れないようです。私は何か基本的なものが欠けているように感じますが、それが何であるか把握できませんでした。ローカルマシンのMSMQから読み取ることができません
コード:私は、コードをステップ実行すると_queueオブジェクトが作成された後
string queuePath = "FormatName:DIRECT=TCP:127.0.0.1\MyQueue";
MessageQueue _queue = new MessageQueue(queuePath);
、CanReadプロパティは常にfalseです。私はキューのパスを設定するいくつかの異なる方法( "DIRECT = OS:。\ MyQueue"、 "PUBLIC = [guid]"、フォーマット名も使わずに)を試みましたが、何も成功しませんでした。
MSDN documentationには、キューが排他的な読み取りアクセスですでに開いている場合(または非排他的アクセスで開いており、このMessageQueueが排他アクセスを要求している場合)、またはアプリケーションに十分なアクセス権がない場合アクセスしてください。
私はアプリケーションに十分な権利があることを確認しましたが、他のものに「排他的な読み取りアクセス権」があるかどうかをどのように確認できますか?私は行方不明のものが他にありますか?
ありがとうございました。
これは恥ずかしいものです。 _wrongサービスアカウントのACLを設定していたことがわかりました。私が正しいアカウントに変更すると、それは満足していました。ここで見ることは何もない、人々は、一緒に移動します。 – howcheng