【发布时间】:2011-07-17 05:46:08
【问题描述】:
我试图从 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));
}
在Service模块的app.config中我添加了如下属性
serviceDebug includeExceptionDetailInFaults="True"
有人知道解决办法吗?
【问题讨论】:
-
在服务端代码 - 除非您正在记录数据(我看不到您在记录数据),否则这种异常重新抛出将导致您的应用程序变得更难调试。您基本上是在丢弃堆栈跟踪。不要那样做。或者,如果您这样做,请先登录。