0
。\ publicQueueエラーと呼ばれる公開キューがあります。 System.Messaging.MessageQueueException(0x80004005が):メッセージキューシステムへのアクセスが拒否され、私は次のエラーを提示していたコードを実行した後C#MSMQアクセスが拒否されました。
MessageQueue currentQueue = new MessageQueue(queue);
AccessControlList accessList = new AccessControlList();
Trustee queueOwner = new Trustee(user, Environment.MachineName, TrusteeType.User);
MessageQueueAccessControlEntry accessOwner = new MessageQueueAccessControlEntry(queueOwner, rights);
accessList.Add(accessOwner);
currentQueue.SetPermissions(accessList);
。
キューが存在することを確認できます。
何が間違っているのでしょうか?
私は、匿名のアプリケーションプールの信用が問題を引き起こす可能性があるという提案を見つけましたが、そうではありません。アプリケーションプールは、コード内のqueueownerと同じユーザーとして実行されています。
を私は数年でMSMQのAPIを使用していないが、あなたができる前に別のステップがありますように私は感じますキューのパーミッションを設定しますか? 実行コンテキストに関連する問題だと思う場合は、 QueueOwnerとして、偽装コンテキストを使って明示的に実行することができます。詳しくは、[この回答](https://stackoverflow.com/a/125356/)を参照してください。 – Arman
duplicate:https://stackoverflow.com/questions/3731627/ウィンサービス取得許可不許可メッセージキューイング – SQLMason