キューにアクセスしようとしましたが、アクセス拒否エラーが発生しました。混乱している部分は、誰もがフルコントロールと匿名とmachinename $(3つは完全に制御可能です - それは大きな問題ではないテストシステムです)に誰もできるようにセットアップされています。私は正常にキューに書き込むことはできますが、それをPeek/Read/Receiveすることはできません。 FormatNameメソッドの使用を提案している記事がありますが、残念ながら既にこれを行っています。MSMQアクセスが拒否されました
このキャッチは私のシステムが1つのADドメインにあり、テストサーバーが別のドメイン(私のクライアントのもの)に対して完全に実行されていることです。私はこれで不可能なことを達成しようとしていますか?
私のプラットフォームはVista x64で、サーバーは2008 R2です(R2ではありません)。
コードは次のようになります。
Do While Not m_boolCancel
'**Code dies on this line**
l_ar = m_mq.BeginPeek
'block thread till message arrived or shutdown is signalled
If WaitHandle.WaitAny(New WaitHandle() {m_sig, l_ar.AsyncWaitHandle}) > 0 Then
l_msg = m_mq.EndPeek(l_ar)
If l_msg IsNot Nothing Then
'doing stuff here
End If
Exit Do
End If
ああ、私たちは信用を持っていませんが、それは完璧な意味を持っています。だから私が公開キューとして設定しても、私はまだその場所に信頼を置く必要がありますか? 私はVista - > Server 2008を使用していますので、MSMQ 4.0を既に使用しているはずです。 – RubyHaus
公開キューを定義する情報は、Active Directoryのキューをホストしているコンピュータオブジェクトの下に格納されます。 MSMQはセキュリティのためにケルベロスに依存しています。 –
セキュリティを無効にする方法はありますか?待ち行列は内部のみであるため、とにかく無許可のものによってアクセスされる危険はありません。 – RubyHaus