Pa" />

日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

[MQ]MSMQ的訪問方式亂彈

系統 2238 0

MSMQ 訪問方式 亂彈

Report Date ?? 2004/2/18

Prepared by ???? 鄭昀

Article last modified on 2004-2-18

The information in this article applies to:

ü ???????? Microsoft MSMQ

問題陳述 :

有一個網友問我,執行

IMSMQQueueInfoPtr pisQI = NULL;

HRESULT hr = pisQI.CreateInstance("MSMQ.MSMQQueueInfo");

?

pisQI-> PathName = " direct=tcp:172.xx.xx.xx\\private$\\YourMQName ";

或者

pisQI-> PathName = " 172.xx.xx.xx\\private$\\YourMQName ";

?

hr = pisQI->raw_Open(MQ_SEND_ACCESS,MQ_DENY_NONE,&pisQueue);

都會出錯,錯誤號是:

0xC00E0014 which means illegal queue pathname( 非法的路徑名 )

但是, MSDN 上確實是這么描述 DIRECT 語法的呀 ?

為什么不能指定 IP 地址用于訪問 MSMQ 隊列呢?

這到底是怎么回事呢?

最開始我一直沒有注意到他操作的是 PathName 屬性,所以也有點困惑。

?

原因分析:

對于 IMSMQQueueInfo PathName 這個屬性,它只接受這樣的語法:

"myComputer\myPublicQueue"

"otherComputer\otherPublicQueue"

"myComputer\Private$\myPrivateQueue"

".\myPublicQueue"

".\Private$\myPrivateQueue"

而不接受這樣的 IP 標示:

xxx.xxx.xxx.xxx \private$\yourqname

因為并沒有可供使用的語法指明這個地址是 IP 地址,所以 MS 不支持這種寫法,會返回錯誤 MQ_ERROR_ILLEGAL_PATHNAME (C00E0014)

?

對于 FormatName 這個屬性,它才接受你的各種各樣 DIRECT 語法:

Direct=tcp: MyMachineHostName \private$\yourqname

Direct=tcp: xxx.xxx.xxx.xxx \private$\yourqname

      
        
          ?????????????? 
        
        PUBLIC=
        
          QueueGUID
        
        
        
      
    
      
        
          ?????????????? 
        
        
          DIRECT=
          
            Protocol
          
          :
        
        
          
            ComputerAddress
          
        
        \
        
          QueueName
        
        
        
      
    
      
        
          ?????????????? 
        
        
          DIRECT=OS:
        
        
          ComputerName
        
        \private$\
        
          QueueName
        
        
        
      
    

PRIVATE= ComputerGUID \ QueueNumber

因為它可以顯式指明使用的協議。

?

如果你不小心給 FormatName 這個屬性賦值

MyMachineHostName \private$\yourqname ,那就會得到

MQ_ERROR_ILLEGAL_FORMATNAME (C00E001E) 這個錯誤。

?

同樣,如果你不小心給 PathName 這個屬性賦值

direct=tcp:172.xx.xx.xx\private$\YourMQName ,那就會得到

MQ_ERROR_ILLEGAL_PATHNAME (C00E0014) 這個錯誤。

?

這兩個屬性真的不一樣啊,不要搞混了。

?

我的其他建議:

如果你本機的 MSMQ 安裝模式是 Workgroup 模式:

只能使用 .\private$\ YourPrivateMQName 來訪問本機的私有 MSMQ 隊列。

而不能使用 .\ YourPublicMQName ,即本機的公用隊列你無法訪問,只有在 AD 模式下才可以訪問公用隊列。

?

謹慎起見,我進一步建議你不要在 FormatName 屬性上使用 DIRECT 語法,因為:

MSMQ1.0 并不是完全支持 DIRECT 語法, MSMQ2.0 才支持的。

最好用 PathName 屬性。

?

所以,一般請這么使用 PathName

MyMachineHostName \ YourPublicMQName

?

除非你要在 Internet 上訪問遠端 MSMQ ,再使用 FormatName 屬性指定對方 IP 地址。

?

Writen by zhengyun.NoJunk(at)tomosoft.dot.com

Disclaimers

本文檔所包含的信息代表了在發布之日, ZhengYun 對所討論問題的當前看法, Zhengyun 不保證所給信息在發布之日以后的準確性。

本文檔僅供參考。對本文檔中的信息, Zhengyun 不做任何明示或默示的保證。

用戶必須遵守所有適用的版權法。在不對版權法所規定的權利加以限制的情況下,如未得到 zhengyun CSDN.Net 明確的書面許可,不得出于任何目的、以任何形式或手段(電子的、機械的、影印、錄制等等)復制、傳播本文的任何部分,也不得將其存儲或引入到檢索系統中。



Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=12746


[MQ]MSMQ的訪問方式亂彈


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 林芝县| 尤溪县| 延安市| 印江| 澄城县| 青川县| 深州市| 井陉县| 颍上县| 南安市| 绥芬河市| 南漳县| 丹江口市| 成武县| 东山县| 虹口区| 大竹县| 南川市| 庆元县| 论坛| 康乐县| 黑河市| 衡南县| 清河县| 类乌齐县| 哈巴河县| 石林| 朝阳区| 宜昌市| 贵州省| 宣威市| 威宁| 石林| 固安县| 涪陵区| 武山县| 肃北| 丘北县| 元氏县| 东方市| 札达县|