c# - WCF 抛出异常

标签 c# .net wcf exception



我试图从 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" 

有人知道解决方案吗?

最佳答案

您必须将 FaultContractAttribute 添加到方法 SearchUserDetail 中,如果它具有 OperationContractAttribute 并且是您的 ServiceContract 类的一部分。

[ServiceContract]
interface IMyServiceContract
{
  [OperationContract]
  [FaultContract(typeof(...)]
  IList<UserEntity> SearchUserDetail(string userName)
}

我不确定 FaultContract 的类型。但是看看 msdn。

关于c# - WCF 抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5336698/

相关文章:

c# - GetHashCode计算

c# - 最快的 C# 序列化程序

c# - 在 .NET 中如何最好地使用 XPath 处理非常大的 XML 文件?

c# - 将 DB Connection 对象传递给方法

wcf - jQuery $.ajax 调用 WCF 服务返回 400 错误请求

wcf - 为什么我的 oData 服务( Entity Framework )不允许导航属性

c# - 附加属性或行为时,如何访问 xamarin 表单元素背后的 native 控件?

javascript - 当 IE 从 10 自动更新到 11 时,无法在 visual studio 2013 中调试 javascript

wcf - 如何在 Service Trace Viewer 中为小于 40 mb 的文件启用部分加载

c# - CheckedListBox.SelectedItems.Count = 1?