我正在嘗試訪問隊列並收到訪問被拒絕的錯誤。令人困惑的部分是隊列被設置爲允許所有人完全控制以及匿名和機器名$(所有三個都是完全控制 - 這是一個測試系統,所以不是什麼大問題)。我能夠成功寫入隊列,但不能從中讀取/讀取/接收。我在這裏發現了一篇文章,建議使用FormatName方法,但不幸的是我已經這樣做了。MSMQ拒絕訪問
捕捉到這是我的系統是在一個AD域和測試服務器完全運行在另一個域(我的客戶端)。我想用這個完成不可能的事情嗎?
我的平臺是Vista x64,服務器是2008(不是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 - >服務器2008年,所以我應該在MSMQ 4.0已經。 – RubyHaus 2009-08-29 15:47:46
定義公用隊列的信息存儲在承載隊列的計算機對象下的Active Directory中。 MSMQ依靠kerberos來保證安全。 – 2009-08-30 05:38:50
有沒有什麼辦法可以禁用安全或不安全?隊列只在內部,所以不存在任何未經授權的訪問的風險。 – RubyHaus 2009-08-30 15:39:54