共用方式為


<msmqIntegration>

指定自訂綁定的 MSMQ 傳輸方式。

<configuration>
  <system.serviceModel>
    <bindings>
      <customBinding>
        <binding>
          <msmqIntegration>

語法

<msmqIntegration customDeadLetterQueue="Uri"
                 deadLetterQueue="Custom/None/System"
                 durable="Boolean"
                 exactlyOnce="Boolean"
                 manualAddressing="Boolean"
                 maxBufferPoolSize="Integer"
                 maxImmediateRetries="Integer"
                 maxReceivedMessageSize="Integer"
                 maxRetryCycles="Integer"
                 rejectAfterLastRetry="Boolean"
                 retryCycleDelay="TimeSpan"
                 serializationFormat="XML/Binary/ActiveX/ByteArray/Stream"
                 timeToLive="TimeSpan"
                 useSourceJournal="Boolean"
                 useMsmqTracing="Boolean">
  <msmqTransportSecurity>
  </msmqTransportSecurity>
</msmqIntegration>

類型

Type

屬性和項目

下列章節說明屬性、子元素和父元素。

Attributes

Attribute Description
自訂死信排隊列 一個 URI,指示每個應用程式的死符佇列位置,該佇列會傳送過期或未送達應用程式的訊息。

對於需要 ExactlyOnce 保證的訊息(即 exactlyOnce 設定為 true),此屬性預設為 MSMQ 中系統範圍的交易死信佇列。

對於不需要保證的訊息(即 exactlyOnce 設定為 false),此屬性預設為 null

該值必須使用 net.msmq 方案。 預設值為 null

deadLetterQueue 設為 NoneSystem,則此屬性必須設為 null。 若此屬性不 null成立,則 deadLetterQueue 必須設為 Custom
死信排隊 指定使用哪種死字母佇列。

有效的數值包括

- 自訂:自訂死信佇列。
- 無:不得使用死信佇列。
- 系統:使用系統死信佇列。

此屬性為 DeadLetterQueue 類型。
耐用 一個布林值,用來指定此綁定處理的訊息是持久還是可變性。 預設值為 true

持久訊息能在隊列管理器崩潰後存活,而揮發性訊息則無法存活。 當應用程式需要較低延遲且能容忍偶爾遺失訊息時,揮發性訊息非常有用。

exactlyOnce 設為 true,則訊息必須是持久的。
沒錯,曾經 一個布林值,指定此綁定處理的訊息是否只會接收一次。 預設值為 true

訊息可以有或沒有保證的情況下發送。 保證讓應用程式能確保已發送的訊息是否到達接收訊息佇列,若未達標,則可透過讀取死符佇列來判斷。

exactlyOnce,當設定為 true時,表示 MSMQ 會確保發送訊息只送入接收訊息佇列一次,若送達失敗,則送入死信佇列。

設定 exactlyOnce 為 的 true 訊息必須僅送入交易佇列。
手動位址 一個布林值,讓使用者能夠控制訊息位址。 此特性通常用於路由器情境,應用程式決定將訊息傳送至多個目的地中的哪一個。

當 設為 true時,通道假設訊息已被定址,且不會新增任何資訊。 使用者接著可以逐一回覆每則訊息。

當設定為 false時,預設的 Windows 通訊基金會(WCF)位址機制會自動為所有訊息建立位址。

預設值為 false
maxBufferPoolSize 一個正整數,指定緩衝池的最大大小。 預設是524288。

WCF 的許多部分使用緩衝區。 每次使用緩衝區都建立與銷毀成本高昂,緩衝區的垃圾回收也同樣昂貴。 使用緩衝池時,你可以從緩衝池中取一個緩衝區,使用完畢後再歸還給池。 因此避免了建立與銷毀緩衝區的開銷。
max即時重試 一個整數,用來指定從應用程式佇列讀取訊息時,立即重試次數最多的次數。 預設值為 5。

如果嘗試了訊息的最大即時重試次數,且應用程式未使用訊息,則訊息會被送入重試隊列,待日後再試。 若未指定重試週期,則訊息會被送入毒訊息佇列,或是將負面確認回傳給發送者。
最大接收訊息大小 一個正整數,指定包含標頭在內的訊息最大大小(以位元組為單位)。 當訊息對接收端來說過大時,發送者會收到 SOAP 錯誤。 接收端會丟棄訊息,並在追蹤日誌中建立事件的條目。 預設是 65536。
maxRetryCycles 一個整數,指定嘗試將訊息傳送給接收應用程式的最大重試週期數。 預設值為 MaxValue

單一重試週期嘗試將訊息傳送給應用程式指定次數。 嘗試次數由 maxImmediateRetries 屬性決定。 若應用程式在嘗試傳遞失敗後仍未使用訊息,則訊息會被送入重試佇列。 後續的重試循環是訊息從重試佇列回傳至應用程式佇列,嘗試在屬性指定的 retryCycleDelay 延遲後再次傳遞給應用程式。 屬性 maxRetryCycles 指定應用程式嘗試傳遞訊息所使用的重試週期數。
rejectAfterLastRetry 一個布林值,指定在嘗試最多次重試後,訊息在傳遞失敗時應採取的行動。

true 表示發送者會收到負面確認,訊息隨即被丟棄; false 表示訊息會被送入毒訊息佇列。 預設值為 false

若值為 false,接收應用程式可讀取毒訊息佇列以處理毒訊息(即傳遞失敗的訊息)。

MSMQ 3.0 不支援向寄件者回傳負面確認,因此此屬性在 MSMQ 3.0 中將被忽略。
retryCycleDelay TimeSpan A 指定在嘗試傳遞無法立即送達訊息時,重試週期之間的時間延遲。 預設值是 00:10:00。

單一重試週期嘗試將訊息傳送給接收應用程式指定次數。 嘗試次數由 maxImmediateRetries 屬性指定。 若應用程式在指定次數的即時重試後仍未使用訊息,則訊息會被送入重試佇列。 後續的重試循環是訊息從重試佇列回傳至應用程式佇列,嘗試在屬性指定的 retryCycleDelay 延遲後再次傳遞給應用程式。 重試循環的次數由屬性指定 maxRetryCycles
serializationFormat 指定用於序列化作為 MSMQ 訊息一部分的物件的格式化器。 有效的數值為

- ActiveX:ActiveX 格式化器用於序列化 COM 物件。
- 二進位:將物件序列化為二進位封包。
- ByteArray:將物件序列化為一個位元組陣列。
- 串流:將物件序列化為串流。
- XML:將物件序列化為 XML 封包。 預設是 XML。

此屬性的類型 MsmqMessageSerializationFormat為 。
timeToLive A TimeSpan 則指定訊息有效期多久,直到過期並被放入死信佇列。 預設是 1.00:00:00,也就是 1 天。

此屬性設定是為了確保時間敏感的訊息在接收應用程式處理前不會過時。 在指定時間區內未被接收應用程式使用的隊列訊息稱為過期。 過期訊息會被送入稱為死信佇列的特殊佇列。 死字佇列的位置會根據 customDeadLetterQueue 屬性或相應的預設值設定,並根據保證設定。
useMsmqTracing 一個布林值,指定是否應該追蹤此綁定處理的訊息。 預設值為 false

啟用追蹤時,每次訊息離開或抵達訊息佇列電腦時,都會產生並送入報告佇列。
使用SourceJournal 一個布林值,指定此綁定處理的訊息副本是否應儲存在原始日誌佇列中。 預設值為 false

排隊的應用程式若想保留已離開電腦發出佇列的訊息紀錄,可以將訊息複製到日誌佇列。 一旦訊息離開外發佇列,且收到訊息已在目的電腦收到的確認後,該訊息的副本會被保留在發送電腦的系統日誌佇列中。

子專案

元素 Description
msmqTransportSecurity 指定此綁定的傳輸安全設定。 此元素的類型 MsmqTransportSecurityElement為 。

父項目

元素 Description
<裝訂> 定義自訂綁定的所有綁定功能。

另請參閱