我使用我的用戶帳戶在本地計算機上創建了公共消息隊列。我的公司服務帳戶下運行的本地機器上也有Windows服務。我已授予服務帳戶對隊列的完全訪問權限,但在服務運行時,似乎無法讀取隊列中的消息。我覺得我錯過了一些相當基本的東西,但我一直無法弄清楚它是什麼。無法從本地計算機上的MSMQ讀取
代碼:
string queuePath = "FormatName:DIRECT=TCP:127.0.0.1\MyQueue";
MessageQueue _queue = new MessageQueue(queuePath);
當我通過代碼,創建_queue對象之後,CanRead屬性始終爲false。我嘗試了幾種不同的方式設置隊列路徑(「DIRECT = OS:。\ MyQueue」,「PUBLIC = [guid]」,並且不使用格式名稱),但沒有任何成功。
MSDN documentation指出「如果隊列已經以獨佔讀取訪問打開(或者如果打開非獨佔訪問並且此MessageQueue請求獨佔訪問),或者應用程序沒有足夠的權限訪問它「。
我已經確定應用程序有足夠的權利(我認爲),但是如何知道其他內容是否具有「獨佔讀取權限」?還有什麼我失蹤?
謝謝。
嗯,這很尷尬。事實證明,我已經爲_wrong服務帳戶設置了ACL。一旦我將其更改爲正確的帳戶,它很高興。這裏沒什麼可看的,夥計們,一起前進。 – howcheng 2012-03-27 21:40:32