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


Actor プロパティは、Actor 引数を受け入れるコンストラクタのいずれか 1 つを使用する場合だけ設定できます。
SOAP 要求が作成されると、作成されたメッセージは、SOAP アクタ属性で指定されている受信側に送信されます。XML Web サービス内で例外が発生すると、SOAP アクタ属性の値は Actor プロパティに代入されます。ASP.NET で作成された XML Web サービスの場合、XML Web サービス メソッドへの URL は SOAP アクタ属性の値になるため、Actor プロパティで返されます。
SOAP アクタ属性の詳細については、SOAP の仕様 (http://www.w3.org/tr/soap/) を参照してください。

0 での除算が発生した場合に例外をスローする Math XML Web サービス メソッドを呼び出す Web フォームの例を次に示します。例外がスローされると、この Web フォームが例外を受け取り、Actor プロパティおよび Code プロパティを含む例外の詳細を、HtmlTable コントロールに出力します。
<%@ Page Language="VB"%> <html> <head> <script runat=server language="VB"> Sub Page_Load(o As Object, e As EventArgs) Dim UsageCount As Integer ' Create a new instance of the proxy class. Dim math As New MyMath.Math() ' Make a call to the Math XML Web service, which throws an exception. Try math.Divide(3, 0) Catch err As System.Web.Services.Protocols.SoapException ' Populate our Table with the Exception details ErrorTable.Rows.Add(BuildNewRow("Fault Code Namespace", err.Code.Namespace)) ErrorTable.Rows.Add(BuildNewRow("Fault Code Name", err.Code.Name)) ErrorTable.Rows.Add(BuildNewRow("SOAP Actor that threw Exception", err.Actor)) ErrorTable.Rows.Add(BuildNewRow("Error Message", err.Message)) Return End Try End Sub 'Page_Load Function BuildNewRow(Cell1Text As String, Cell2Text As String) As HtmlTableRow Dim row As New HtmlTableRow() Dim cell1 As New HtmlTableCell() Dim cell2 As New HtmlTableCell() ' Set the contents of the two cells. cell1.Controls.Add(New LiteralControl(Cell1Text)) ' Add the cells to the row. row.Cells.Add(cell1) cell2.Controls.Add(New LiteralControl(Cell2Text)) ' Add the cells to the row. row.Cells.Add(cell2) Return row End Function 'BuildNewRow </script> </head> <body> <table id="ErrorTable" CellPadding=5 CellSpacing=0 Border="1" BorderColor="black" runat="server" /> </body>
<%@ Page Language="C#" %> <html> <head> <script runat=server language="C#"> void Page_Load(Object o, EventArgs e) { int UsageCount; // Create a new instance of the proxy class. MyMath.Math math = new MyMath.Math(); // Make a call to the Math XML Web service, which throws an exception. try { math.Divide(3, 0); } catch (System.Web.Services.Protocols.SoapException error) { // Populate the table with the exception details. ErrorTable.Rows.Add(BuildNewRow("Fault Code Namespace", error.Code.Namespace)); ErrorTable.Rows.Add(BuildNewRow("Fault Code Name", error.Code.Name)); ErrorTable.Rows.Add(BuildNewRow("SOAP Actor that threw Exception", error.Actor)); ErrorTable.Rows.Add(BuildNewRow("Error Message", error.Message)); return; } } HtmlTableRow BuildNewRow(string Cell1Text, string Cell2Text) { HtmlTableRow row = new HtmlTableRow(); HtmlTableCell cell1 = new HtmlTableCell(); HtmlTableCell cell2 = new HtmlTableCell(); // Set the contents of the two cells. cell1.Controls.Add(new LiteralControl(Cell1Text)); // Add the cells to the row. row.Cells.Add(cell1); cell2.Controls.Add(new LiteralControl(Cell2Text)); // Add the cells to the row. row.Cells.Add(cell2); return row; } </script> </head> <body> <table id="ErrorTable" CellPadding=5 CellSpacing=0 Border="1" BorderColor="black" runat="server" /> </body>
前述の Web フォームで次の Math Web サービスを使用するために、MyMath の名前空間がプロキシ クラスの作成中に指定されました。
<%@ WebService Language="VB" Class="Math"%> Imports System.Web.Services Imports System Public Class Math Inherits WebService <WebMethod()> _ Public Function Divide(dividend As Integer, divisor As Integer) As Single If divisor = 0 Then Throw New DivideByZeroException() End If Return Convert.ToSingle(dividend / divisor) End Function 'Divide End Class 'Math

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 によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


- SoapException.Actor プロパティのページへのリンク