Aracılığıyla paylaş


WebMethodAttribute.TransactionOption Özellik

Tanım

XML Web hizmeti yönteminin işlem desteğini gösterir.

public:
 property System::EnterpriseServices::TransactionOption TransactionOption { System::EnterpriseServices::TransactionOption get(); void set(System::EnterpriseServices::TransactionOption value); };
public:
 property System::Web::Services::TransactionOption TransactionOption { System::Web::Services::TransactionOption get(); void set(System::Web::Services::TransactionOption value); };
public System.EnterpriseServices.TransactionOption TransactionOption { get; set; }
public System.Web.Services.TransactionOption TransactionOption { get; set; }
member this.TransactionOption : System.EnterpriseServices.TransactionOption with get, set
member this.TransactionOption : System.Web.Services.TransactionOption with get, set
Public Property TransactionOption As TransactionOption

Özellik Değeri

TransactionOption
TransactionOption

XML Web hizmeti yönteminin işlem desteği. Varsayılan değer: Disabled.

Örnekler

Aşağıdaki örnek, yöntem çağrıldığında Transfer yeni bir işlem başlatır.

// <Snippet1>
<%@ WebService Language="C#" Class="Bank"%>
<%@ assembly name="System.EnterpriseServices,Version=1.0.3300.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a" %>
 
 using System;
 using System.Web.Services;
 using System.EnterpriseServices;
 
 public class Bank : WebService {
 
      [ WebMethod(TransactionOption=TransactionOption.RequiresNew) ]
      public void Transfer(long Amount, long AcctNumberTo, long AcctNumberFrom)  {
            MyCOMObject objBank = new MyCOMObject();
               
            if (objBank.GetBalance(AcctNumberFrom) < Amount )
               // Explicitly abort the transaction.
               ContextUtil.SetAbort();
            else {
               // Credit and Debit methods explicitly vote within
               // the code for their methods whether to commit or
               // abort the transaction.
               objBank.Credit(Amount, AcctNumberTo);
               objBank.Debit(Amount, AcctNumberFrom);
            }
      }
 }
      
// </Snippet1>


 public class MyCOMObject {
    public long GetBalance(long AcctNumber){return 0;}
    public void Credit( long Amount, long AcctNumber) {}
    public void Debit( long Amount, long AcctNumber) {}

 }
' <Snippet1>
<%@ WebService Language="VB" Class="Bank"%>
<%@ assembly name="System.EnterpriseServices,Version=1.0.3300.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a" %>
 
Imports System
Imports System.Web.Services
Imports System.EnterpriseServices

Public Class Bank
    Inherits WebService    
    
    <WebMethod(TransactionOption := TransactionOption.RequiresNew)> _	
    Public Sub Transfer(Amount As Long, AcctNumberTo As Long, AcctNumberFrom As Long)
        
        Dim objBank As New MyCOMObject()
        
        If objBank.GetBalance(AcctNumberFrom) < Amount Then
            ' Explicitly abort the transaction.
            ContextUtil.SetAbort()
        Else
            ' Credit and Debit method explicitly vote within
            ' the code for their methods whether to commit or
            ' abort the transaction.
            objBank.Credit(Amount, AcctNumberTo)
            objBank.Debit(Amount, AcctNumberFrom)
        End If
    End Sub
End Class
      
' </Snippet1>
Public Class MyCOMObject
    Public Function GetBalance(AcctNumber As Long)
    End Function

    Public Sub Credit(Amount as Long, AcctNumber As Long)
    End Sub

    Public Sub Debit(Amount as Long, AcctNumber As Long)
    End Sub
    

End Class

Açıklamalar

XML Web hizmeti yöntemleri, HTTP protokolünün durum bilgisi olmayan yapısı nedeniyle yalnızca bir işlemdeki kök nesne olarak katılabilir. XML Web hizmeti yöntemleri, COM nesnesi Bileşen Hizmetleri yönetim aracındaki bir işlem içinde çalışacak şekilde işaretlenmişse, XML Web hizmeti yöntemiyle aynı işleme katılan COM nesnelerini çağırabilir. veya özelliğine sahip bir TransactionOption XML Web hizmeti yöntemi veya RequiresNew RequiresNewözelliğine Required sahip başka bir TransactionOption XML Web hizmeti yöntemi çağırırsa, bir XML Web hizmeti yöntemi yalnızca bir işlemdeki kök nesne olarak davranabileceğinden, her XML Web hizmeti yöntemi kendi işlemine Required katılır.

Öğe Açıklama
Devre dışı XML Web hizmeti yönteminin bir işlem kapsamında çalışmadığını gösterir. bir istek işlendiğinde, XML Web hizmeti yöntemi bir işlem olmadan yürütülür.

[WebMethod(TransactionOption= TransactionOption.Disabled)]
Notsupported XML Web hizmeti yönteminin bir işlem kapsamında çalışmadığını gösterir. bir istek işlendiğinde, XML Web hizmeti yöntemi bir işlem olmadan yürütülür.

[WebMethod(TransactionOption= TransactionOption.NotSupported)]
Destekleniyor XML Web hizmeti yönteminin işlemler kapsamında çalışmadığını gösterir. bir istek işlendiğinde, XML Web hizmeti işlem olmadan oluşturulur.

[WebMethod(TransactionOption= TransactionOption.Supported)]
Gerekli XML Web hizmeti yönteminin bir işlem gerektirdiğini gösterir. XML Web hizmeti yöntemleri yalnızca bir işlemdeki kök nesne olarak katılabildiğinden, XML Web hizmeti yöntemi için yeni bir işlem oluşturulur.

[WebMethod(TransactionOption= TransactionOption.Required)]
GerekliYeni XML Web hizmeti yönteminin yeni bir işlem gerektirdiğini gösterir. bir istek işlendiğinde, XML Web hizmeti yeni bir işlem içinde oluşturulur.

[WebMethod(TransactionOption= TransactionOption.RequiresNew)]

XML Web hizmeti yönteminden bir özel durum oluşturulursa veya yakalanmazsa, işlem otomatik olarak durduruldu. Özel durum oluşmazsa yöntemi açıkça çağırmadığı SetAbortsürece işlem otomatik olarak işlenir.

Şunlara uygulanır

Ayrıca bkz.