如何将WCF CommunicationObject
转换为故障状态:我在Visual Studio中创建了一个WCF库,将其部署到IIS中,我有两种方法:
public string GetData(int value)
{
throw new FaultException(value.ToString());
}
public CompositeType GetDataUsingDataContract(CompositeType composite)
{
throw new TestException();
}
从客户端,我只是一遍又一遍地调用这两种方法,但是,CommunicationObjectFaultedException
不会在任何时候被抛出。
我在文章WCF error handling and some best practices中读到,默认情况下,“FaultExceptions”会自动“自动”转换为FaultException。如果这是正确的,那么WCF客户端的通信对象何时以及如何处于故障状态?
另一件事是,是否有人知道任何MSDN引用确认FaultException
是确保WCF通信对象不转换为Faulted state
的最佳方法。
答案 0 :(得分:3)
如果您正在使用会话(即支持会话的绑定),并且对方法的调用引发了未处理的异常,则通道将处于故障状态。
另一种可以进入故障状态的方法是在通道打开时会话超时。
频道处于故障状态,而不是服务