我正在尝试从WCF模块向客户端模块抛出异常。我收到以下错误“用户未处理FaultException”
服务方
public IList<UserEntity> SearchUserDetail(string userName)
{
try
{
int y = 0;
int u = 9 / y;
return new UserViewModel().SearchUserDetail(userName);
}
catch (Exception ex)
{
throw new FaultException(
new FaultReason(ex.Message),new FaultCode("Data Access Error"));
}
}
在客户端
try
{
ServiceReference.ServiceClient servRef = new ServiceReference.ServiceClient();
List<UserEntity> users = new List<UserEntity>();
users.AddRange(servRef.SearchUserDetail("Jacson"));
dataGridView1.DataSource = users;
}
catch (System.ServiceModel.FaultException exc)
{
Logging.Log(new Exception("Search User", exc));
}
在服务模块的app.config中,我添加了以下属性
serviceDebug includeExceptionDetailInFaults="True"
任何人都知道解决方案吗?
答案 0 :(得分:4)
如果它具有OperationContractAttribute并且是ServiceContract类的一部分,则必须将FaultContractAttribute添加到方法SearchUserDetail
。
[ServiceContract]
interface IMyServiceContract
{
[OperationContract]
[FaultContract(typeof(...)]
IList<UserEntity> SearchUserDetail(string userName)
}
我不确定FaultContract的类型。但是看看msdn。
答案 1 :(得分:3)
答案 2 :(得分:1)
我知道我已经很晚了,但是万一有人偶然发现这个问题,我遇到了同样的错误,我的代码一切正常。
事实证明,由于某些调试选项,这只发生在Visual Studio环境中。有关说明,请参阅here。