This documentation is archived and is not being maintained.

SoapException.Actor Property

Gets the piece of code that caused the exception.

Namespace:  System.Web.Services.Protocols
Assembly:  System.Web.Services (in System.Web.Services.dll)

public string Actor { get; }

Property Value

Type: System.String
The piece of code that caused the exception.

The Actor property can only be set using one of the constructors that accepts an Actor argument.

When a SOAP request is made, the message is sent to a recipient, which is specified in a SOAP actor attribute. If an exception occurs within an XML Web service, the value of the SOAP actor attribute is assigned to the Actor property. For XML Web services created using ASP.NET, the URL to the XML Web service method is the value of the SOAP actor attribute and is returned in the Actor property.

For more information on the SOAP actor attribute, see the SOAP specification at

The following Web Form example calls the Math XML Web service method, which throws an exception if a division by zero occurs. When the exception is thrown, the Web Form catches the exception and outputs the exception details, including the Actor and Code properties, into an HtmlTable control.

<%@ Page Language="C#" %>
 <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. 
       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));        

   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.

       cell2.Controls.Add(new LiteralControl(Cell2Text));

       // Add the cells to the row.
       return row;
     <table id="ErrorTable"
        runat="server" />

In order for the preceding Web Form to use the following Math Web Service example, a namespace of MyMath was specified during the creation of the proxy class.

<%@ WebService Language="C#" Class="Math"%>
 using System.Web.Services;
 using System;
 public class Math : WebService {
     public float Divide(int dividend, int divisor) {
         if (divisor == 0)
             throw new DivideByZeroException();

         return dividend/divisor;

Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile for Smartphone, Windows Mobile for Pocket PC

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

.NET Framework

Supported in: 3.5, 3.0, 2.0, 1.1, 1.0

.NET Compact Framework

Supported in: 3.5, 2.0, 1.0