Specifying and handling faults in WCF
ms-help://MS.MSSDK.1033/MS.NETFX30SDK.1033/WCF_con/html/a9696563-d404-4905-942d-1e0834c26dea.htm
In this article, it is discussed how and when to convert DotNet exceptions to WCF faults and sent them to the clients. The folowing main contents included:
Error handling overviewDefining and specifying faultsnamespace Microsoft.WCF.Documentation{ [ServiceContract(Namespace = " http://microsoft.wcf.documentation " )] public interface ISampleService{ [OperationContract] [FaultContractAttribute( typeof (GreetingFault), Action = " http://www.contoso.com/GreetingFault " , ProtectionLevel = ProtectionLevel.EncryptAndSign )] string SampleMethod( string msg); } [DataContractAttribute] public class GreetingFault { private string report; public GreetingFault( string message) { this .report = message; } [DataMemberAttribute] public string Message { get { return this .report; } set { this .report = value; } } } class SampleService : ISampleService { #region ISampleService Members public string SampleMethod( string msg) { Console.WriteLine( " Client said: " + msg); // Generate intermittent error behavior. Random rand = new Random(DateTime.Now.Millisecond); int test = rand.Next( 5 ); if (test % 2 != 0 ) return " The service greets you: " + msg; else throw new FaultException < GreetingFault > ( new GreetingFault( " A Greeting error occurred. You said: " + msg)); } #endregion }}
