Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Zeigt die Transaktionsunterstützung einer XML-Webdienstmethode an.
Namespace: System.Web.Services
Assembly: System.Web.Services (in system.web.services.dll)
Syntax
'Declaration
Public Property TransactionOption As TransactionOption
'Usage
Dim instance As WebMethodAttribute
Dim value As TransactionOption
value = instance.TransactionOption
instance.TransactionOption = value
public TransactionOption TransactionOption { get; set; }
public:
property TransactionOption TransactionOption {
TransactionOption get ();
void set (TransactionOption value);
}
/** @property */
public TransactionOption get_TransactionOption ()
/** @property */
public void set_TransactionOption (TransactionOption value)
public function get TransactionOption () : TransactionOption
public function set TransactionOption (value : TransactionOption)
Eigenschaftenwert
Die Transaktionsunterstützung einer XML-Webdienstmethode. Der Standardwert ist Disabled.
Hinweise
Da im HTTP-Protokoll Zustände nicht gespeichert werden, können XML-Webdienstmethoden nur als Stammobjekt an einer Transaktion beteiligt sein. XML-Webdienstmethoden können COM-Objekte aufrufen, die an derselben Transaktion wie die XML-Webdienstmethode beteiligt sind, wenn das COM-Objekt im Verwaltungstool Komponentendienste für die Ausführung in einer Transaktion gekennzeichnet wurde. Wenn eine XML-Webdienstmethode mit einer TransactionOption-Eigenschaft von Required oder RequiresNew eine andere XML-Webdienstmethode mit einer TransactionOption-Eigenschaft von Required oder RequiresNew aufruft, ist jede XML-Webdienstmethode an ihrer eigenen Transaktion beteiligt, da XML-Webdienstmethoden nur als Stammobjekt an einer Transaktion beteiligt sein können.
Element |
Beschreibung |
|---|---|
Disabled |
Gibt an, dass die XML-Webdienstmethode im Gültigkeitsbereich einer Transaktion nicht ausgeführt wird. Bei der Verarbeitung einer Anforderung wird die XML-Webdienstmethode ohne Transaktion ausgeführt. [WebMethod(TransactionOption= TransactionOption.Disabled)] |
NotSupported |
Gibt an, dass die XML-Webdienstmethode im Gültigkeitsbereich einer Transaktion nicht ausgeführt wird. Bei der Verarbeitung einer Anforderung wird die XML-Webdienstmethode ohne Transaktion ausgeführt. [WebMethod(TransactionOption= TransactionOption.NotSupported)] |
Supported |
Gibt an, dass die XML-Webdienstmethode im Gültigkeitsbereich von Transaktionen nicht ausgeführt wird. Bei der Verarbeitung einer Anforderung wird der XML-Webdienst ohne eine Transaktion erstellt. [WebMethod(TransactionOption= TransactionOption.Supported)] |
Required |
Gibt an, dass für die XML-Webdienstmethode eine Transaktion erforderlich ist. Da XML-Webdienstmethoden nur als Stammobjekt Teil einer Transaktion sein können, wird eine neue Transaktion für die XML-Webdienstmethode erstellt. [WebMethod(TransactionOption= TransactionOption.Required)] |
RequiresNew |
Gibt an, dass für die XML-Webdienstmethode eine neue Transaktion erforderlich ist. Bei der Verarbeitung einer Anforderung wird der XML-Webdienst in einer neuen Transaktion erstellt. [WebMethod(TransactionOption= TransactionOption.RequiresNew)] |
Die Transaktion wird automatisch abgebrochen, wenn eine Ausnahme von einer XML-Webdienstmethode ausgelöst wird oder nicht von einer Webdienstmethode abgefangen werden kann. Wenn die Methode nicht explizit SetAbort aufruft und keine Ausnahmen auftreten, wird automatisch ein Commit der Transaktion ausgeführt.
Beispiel
Im folgenden Beispiel wird bei einem Aufruf der Transfer-Methode eine neue Transaktion begonnen.
<%@ 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 explictly 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
<%@ 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 explictly vote within
// the code for their methods whether to commit or
// abort the transaction.
objBank.Credit(Amount, AcctNumberTo);
objBank.Debit(Amount, AcctNumberFrom);
}
}
}
Plattformen
Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.
Versionsinformationen
.NET Framework
Unterstützt in: 2.0, 1.1, 1.0
Siehe auch
Referenz
WebMethodAttribute-Klasse
WebMethodAttribute-Member
System.Web.Services-Namespace
TransactionOption