我正在尝试在带有 .net 4.5 的 VS 2012 中使用带有 Telerik OpenAccess 的 WCF 普通服务。
我尝试了 Telerik 开发人员手册并创建了服务和客户端。
在服务接口 IEntitiesModel 我把
[OperationContract]
[FaultContract(typeof(string))]
PersistentDto ReadPersistentDto(string dtoKey);
在 EntitiesModel.SVC 的方法中,我使用了一个简单的构造作为第一次尝试:
public PersistentDto ReadPersistentDto(string dtoKey)
{
throw new FaultException("test");
}
在消费者的用户代码中,我为异常设置了一个捕获。
现在的问题是:
每次调用该服务时,Visual Studio 都会在“throw new FaultException”中停止并显示错误消息,即用户代码未处理 FaultException。如果我继续 F5,异常也会被消费者的用户代码捕获。
为什么它在服务中停止?
在我的理解中,FaultException 是应该传递给服务消费者的东西。
我应该怎么做才能正确抛出 FaultException?