I want get exeption code from wcf method but i always get NotFound error.
Client Side:
public MainPage() { InitializeComponent(); client.TestCompleted += new EventHandler<System.ComponentModel.AsyncCompletedEventArgs>(TestCompleted); } void TestCompleted(object sender, System.ComponentModel.AsyncCompletedEventArgs e) { if(e.Error!=null) { //HOW to get here my class BaseFault??? } } Server side:
[ServiceContract] public interface IService1 { [OperationContract] [FaultContract(typeof(BaseFault))] void Test(int id); } public void Test(int id) { try { if (id == -1) ThrowEx(new BaseFault() { ErrorCode = ProcessErrorsCode.InvalidArgument }); else throw new NullReferenceException("some server error with null value"); } catch { ThrowEx(new BaseFault() { ErrorCode = ProcessErrorsCode.InternalServerError }); } } public void ThrowEx(BaseFault fault) { throw new FaultException<BaseFault>(fault); } [DataContract] public class BaseFault { [DataMember] public ProcessErrorsCode ErrorCode { get; set; } } Config (includeExceptionDetailInFaults set to True):
<configuration> <system.web> <compilation debug="true" targetFramework="4.0" /> </system.web> <system.serviceModel> <behaviors> <serviceBehaviors> <behavior name=""> <serviceMetadata httpGetEnabled="true" /> <serviceDebug includeExceptionDetailInFaults="True" /> </behavior> </serviceBehaviors> </behaviors> <serviceHostingEnvironment multipleSiteBindingsEnabled="true" /> </system.serviceModel> </configuration> I need to get BaseFault type on my client side. How to do that?