此連接到WebSphere MQ管理器是一個後續:Can create Websphere Queue Manager but not connect難度使用域認證
我試圖建立MQ在開發機器上,但如果我嘗試連接到它使用我的域帳戶它無法驗證(AMQ4999)。挖遠一點我覺得這是在錯誤日誌:
AMQ8079:訪問被拒絕,試圖檢索組成員身份的用戶「XXX @域名」 信息時。
現在我很清楚MQ已知的問題,它無法驗證域帳戶,因爲它無法訪問其成員信息,並且從日誌證實這肯定是發生在這裏的事情,所以我試圖重寫此使用從以前的帖子收集到下面的腳本:
DEFINE CHL('DOTNET.SVRCONN') CHLTYPE(SVRCONN) MCAUSER('[email protected]')
SET CHLAUTH('DOTNET.SVRCONN') TYPE(BLOCKUSER) USERLIST('nobody')
SET CHLAUTH('DOTNET.SVRCONN') TYPE(ADDRESSMAP) ADDRESS('*') USERSRC(CHANNEL) ACTION(ADD)
然而,即使這個通道的地方,我還是不能同時登錄到我的域帳戶連接到隊列管理器。我仍然困擾着我之前得到的完全相同的錯誤。我注意到的一件事是,儘管我開始使用MQ Explorer,但它仍然將該頻道報告爲不活動(儘管從我的IBM網站上閱讀這是正常的)。
我對MQ仍然很陌生,所以我認爲我要麼錯過了某些東西,要麼做了錯誤的事情,但理想情況下,我希望能夠建立一個開發環境,讓我無需依賴即可使用服務在'runas'命令上。我還應該強調,這是嚴格的開發/學習,所以顯然我不關心安全性。
更新:
我發現我在做什麼錯了 - 果然,我缺少一個步驟。多一點背景。在創建QM時,我試圖用一個簡單的C#客戶端連接到它。本來我寫的代碼是這樣的:
var queueManager = new MQQueueManager("MyQueueManager", MQC.MQCNO_STANDARD_BINDING);
此外,嘗試通過MQExplorer連接當兩個似乎是用我的域名證書進行驗證。但是,當我明確創建一個屬性對象,並指定像這樣的通道:
var props = new Hashtable() {
[MQC.HOST_NAME_PROPERTY] = "localhost",
[MQC.PORT_PROPERTY] = 1414,
[MQC.CHANNEL_PROPERTY] = "DOTNET.SVRCONN",
[MQC.USER_ID_PROPERTY] = "DevMQUser",
[MQC.PASSWORD_PROPERTY] = "[email protected]$$w0rd"
};
var queueManager = new MQQueueManager("MyQueueManager", props);
然後一切工作正常。我仍然需要以本地用戶身份運行MQExplorer.exe(即使在「連接詳細信息」>「屬性」中顯式設置憑據似乎也無效),但這不是什麼大問題。
感謝您的建議。
是否設置MCAUSER。到本地用戶ID而不是域限定用戶ID更改行爲? –
MCAUSER是一個本地用戶ID。我已經嘗試了兩個主機名,但沒有。行爲是一樣的。我也嘗試刪除DOTNET.SVRCONN頻道,並用*代替它 - 沒有效果。 – mvastarelli
因此,即使使用本地定義的,沒有域限定的用戶ID,您仍然會得到與您在問題開始時顯示的錯誤消息完全相同的錯誤消息,並顯示其中顯示的用戶ID?我也可以檢查你確實有CHLAUTH(ENABLED)嗎? –