WebMethodAttribute.TransactionOption プロパティ
アセンブリ: System.Web.Services (system.web.services.dll 内)

Dim instance As WebMethodAttribute Dim value As TransactionOption value = instance.TransactionOption instance.TransactionOption = value
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)
XML Web サービス メソッドのトランザクション サポート。既定値は Disabled です。

HTTP プロトコルの状態のない性質のため、XML Web サービス メソッドはルート オブジェクトとしてだけトランザクションに参加できます。XML Web サービス メソッドと同じトランザクションに参加する COM オブジェクトが、コンポーネント サービス管理ツールのトランザクション内で実行されることが示されている場合、XML Web サービス メソッドは、その COM オブジェクトをすべて呼び出すことができます。TransactionOption プロパティが Required または RequiresNew である XML Web サービス メソッドが、TransactionOption プロパティが Required または RequiresNew である別の XML Web サービス メソッドを呼び出すと、各 XML Web サービス メソッドはそれぞれ独自のトランザクションに参加します。これは、XML Web サービス メソッドがトランザクション内で機能できるのは、ルート オブジェクトとしてだけであるためです。
項目 | |
---|---|
XML Web サービス メソッドが、トランザクションのスコープ内で実行されないことを示します。要求が処理されるときに、XML Web サービス メソッドがトランザクションなしで実行されます。 [WebMethod(TransactionOption= TransactionOption.Disabled )] | |
NotSupported | XML Web サービス メソッドが、トランザクションのスコープ内で実行されないことを示します。要求が処理されるときに、XML Web サービス メソッドがトランザクションなしで実行されます。 [WebMethod(TransactionOption= TransactionOption.NotSupported )] |
XML Web サービス メソッドが、トランザクションのスコープ内で実行されないことを示します。要求が処理されるときに、XML Web サービスがトランザクションなしで作成されます。 [WebMethod(TransactionOption= TransactionOption.Supported )] | |
XML Web サービス メソッドに、トランザクションが必要であることを示します。XML Web サービス メソッドは、トランザクションにルート オブジェクトとしてだけ参加できるため、XML Web サービス メソッド用に新しいトランザクションが作成されます。 [WebMethod(TransactionOption= TransactionOption.Required )] | |
RequiresNew | XML Web サービス メソッドに新しいトランザクションが必要であることを示します。要求が処理されるときに、新しいトランザクション内で XML Web サービスが作成されます。 [WebMethod(TransactionOption= TransactionOption.RequiresNew )] |
XML Web サービス メソッドから例外がスローされるか、XML Web サービス メソッドによって例外がキャッチされない場合、トランザクションは自動的に中止されます。例外が発生しない場合、このメソッドが SetAbort を明示的に呼び出さない限り、トランザクションは自動的にコミットされます。

Transfer メソッドが呼び出されたときに新しいトランザクションを開始する例を次に示します。
<%@ 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); } } }

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


Weblioに収録されているすべての辞書からWebMethodAttribute.TransactionOption プロパティを検索する場合は、下記のリンクをクリックしてください。

- WebMethodAttribute.TransactionOption プロパティのページへのリンク