訊息佇列的佇列
本節描述使用 MSMQ 配接器時如何指定 Microsoft Message Queuing (也稱為 MSMQ) 佇列。 內容不但描述指定路徑的慣例,同時也說明格式名稱在轉譯路徑成為佇列目的地時所扮演的角色。
佇列路徑命名慣例
若佇列名稱是指路徑,請使用下表中的命名慣例。
佇列類型 | 路徑的語法 |
---|---|
公用佇列 | Computername\QueueName |
私用佇列 | Computername\Private$\QueueName |
記錄檔佇列 | Computername\QueueName\Journal$ |
電腦日誌佇列 注意: 僅適用于接收佇列。 | Computername\Journal$ |
電腦寄不出的信件佇列 注意: 僅適用于接收佇列。 | Computername\Deadletter$ |
電腦交易寄不出的信件佇列 注意: 僅用於接收佇列。 | Computername\XactDeadletter$ |
注意
佇列的路徑必須是唯一的。
若佇列名稱是指格式名稱,會採用字串的形式,指示佇列是公用還是私用,並視需要接著為佇列和其他識別項所產生的 GUID。 使用下表中的命名慣例。
格式類型 | 格式名稱的語法 |
---|---|
公開 | FormatName:P ublic=QueueGUID |
直接 | FormatName:D IRECT=SPX:NetworkNumber:HostNumber\QueueName FormatName: DIRECT=TCP:IPAddress\QueueName FormatName: DIRECT=OS:ComputerName\QueueName |
若傳送埠佇列是通訊群組清單,那麼佇列路徑語法是:
DL=DistributionListGUID
若傳送或接收佇列路徑是 HTTP 或 HTTPS URL,那麼語法是:
FormatName:DIRECT=HTTP:// < client name > /msmq/ < queue name>
FormatName:DIRECT=HTTPs:// < client name > /msmq/ < queue name>
注意
"msmq" 是訊息佇列在 Internet Information Services (IIS) 中建立的虛擬資料夾。
注意
您只能使用 HTTP 傳送訊息。 若佇列是使用 HTTP 直接格式名稱所開啟的,您就無法在遠端電腦上的佇列中讀取訊息。 不過,您仍然可以使用沒有 HTTP 的私用或公用佇列路徑,從遠端佇列接收 SOAP (格式化) 訊息。
若佇列名稱指的是系統管理員為佇列所指定的說明性文字標籤,那麼表示這個標籤的佇列路徑語法是:
LABEL:MyQueue
注意
標籤不一定是唯一的。 因此,當您嘗試使用其標籤連接到特定佇列時,若發生名稱衝突,您就會收到錯誤。
注意
標籤是配接器的必要傳輸欄位。
格式名稱的角色
訊息佇列使用格式名稱來識別佇列以及決定存取方式。 訊息佇列會指派格式名稱到佇列。
當您使用路徑名稱語法指定佇列時,例如 myMachine\myQueue,訊息佇列會查詢路徑以尋找相關的格式名稱。 接著,訊息佇列會使用該格式名稱來存取佇列。 當您指定格式名稱時,訊息佇列會使用您所使用的格式名稱。
如需有關格式名稱的詳細資訊,請參閱<.NET Framework 類別庫說明>中的<MessageQueue.FormatName 屬性>。
疑難排解佇列路徑
若提供的佇列路徑的語法不符合之前在<佇列路徑命名慣例>中所描述的其中一種格式,會發生例外狀況。
下列字元在佇列路徑中的電腦名稱無效:
\ ; , + "
若電腦名稱是數字,會發生例外狀況。 例如:234\private$\queue。
對於電腦無法寄出的信件佇列、電腦記錄檔佇列以及電腦交易無法寄出的信件佇列,若使用者指定任何一個系統佇列做為傳送的目的地佇列,會發生例外狀況。
System.Messaging.MessageQueue.Exists 不適用於遠端佇列。 如需詳細資訊,請參閱<.NET Framework 類別庫說明>中的<MessageQueue.Exists 方法>。