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?