簡體   English   中英

如何將MsmqIntegrationBinding與非事務性隊列一起使用?

[英]How do I use MsmqIntegrationBinding with a non-transactional queue?

這是我的服務合同:

<ServiceContract> _
<ServiceKnownType(GetType(String))> _
Public Interface ISecurityMasterChanged

<OperationContract(IsOneWay:=True, Action:="*")> _
Sub ValidateCusipInMessage(ByVal message As MsmqMessage(Of String))

End Interface

這是我的課

Public Class SecurityValidator
    Implements ISecurityMasterChanged

<OperationBehavior(TransactionAutoComplete:=False, TransactionScopeRequired:=False)> _
<ServiceKnownType(GetType(String))> _
Public Sub ValidateCusipInMessage(ByVal message As MsmqIntegration.MsmqMessage(Of String)) Implements ISecurityMasterChanged.ValidateCusipInMessage
'...
End Sub

當我嘗試使用此代碼打開端口時,出現錯誤

    m_ServiceHostQueue = New ServiceHost(Me)
    m_ServiceHostQueue.AddServiceEndpoint(GetType(ISecurityMasterChanged), New MsmqIntegrationBinding With {.ExactlyOnce = False}, m_Config("SMChanged Queue").ToString)
    m_ServiceHostQueue.Open()

發生System.InvalidOperationException消息=“ =”將對合同'ISecurityMasterChanged'的'ValidateCusipInMessage'配置為TransactionAutoComplete設置為true,而TransactionScopeRequired設置為false。TransactionAutoComplete要求TransactionScopeRequired設置為true。 Source =“ System.ServiceModel”

這對我來說沒有意義,因為如您所見,TransactionAutoComplete未設置為true。

TransactionAutoComplete的默認值為true。 這使我想知道是否必須使用此屬性而不是類來裝飾合同?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM