2010年3月9日 星期二

MSMQ接收遠端Private Queue的安全性問題

當我們使用FormatName:DIRECT=TCP:10.0.0.1\private$\queue1去存取遠端的Private Queue時,傳送是沒有問題,但是接收時會出現"存取訊息佇列系統"時遭到拒絕的錯誤,猜想可能是接收的權限不夠,所以試著把Queue的安全性中Anonymous Logon及Everyone都設為完整控制權,再試還是不行,上MSDN找了一下,找到有關MSMQ安全性的一篇文章(http://technet.microsoft.com/en-us/library/cc759412(WS.10).aspx),其中提到MSMQ 3.0 default會要求client與server之間建立加密通道,而加密通道只有在trust domain環境下才建的起來,所以解決方式是disable MSMQ要求建立加密通道來傳輸訊息的設定值,方法是在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSMQ\Parameters\Security下新增一個名稱為NewRemoteReadServerAllowNoneSecurityClient的DWORD值,將值設成1,然後把Queue的Anonymous Logon的接收及查看訊息打勾,再重啟MSMQ服務,就可以正常讀取到遠端的Private Queue了.

沒有留言:

張貼留言