WCF数据服务未返回详细错误

时间:2013-08-01 10:36:44

标签: wcf wcf-data-services client-side

我以这种方式配置了我的WCF数据服务:

public static void InitializeService(DataServiceConfiguration config)
    {
      config.UseVerboseErrors = true;

在HandleException方法中,我设置了这个:

 protected override void HandleException(HandleExceptionArgs args)
    {
      args.UseVerboseErrors = true;

我将此属性添加到我的服务类:

  [ServiceBehavior(IncludeExceptionDetailInFaults = true)]
  public class InformationService: DataService<InformationEntities>

在客户端(Android),我从服务器收到此消息:

An error occurred while processing this request.

详细例外情况在哪里?我还应该设置什么?

1 个答案:

答案 0 :(得分:0)

您可以尝试在主机启动时将其添加到WCF服务代码中。它会导致异常详细信息包含在客户端引发和捕获的故障中。如果没有这个,隐藏异常的细节。

确保在捕获这些内部异常时,使用WCF System.ServiceModel.CommunicationObjectFaultedException对象向客户端抛出一个通用的“fault”对象。 Dot NET异常以Microsoft为中心,因此如果您向Android或iPhone等非MS设备抛出错误,则需要使用CommunicationObjectFaultedException。

ServiceDebugBehavior debug = ServiceHost.Description.Behaviors.Find<ServiceDebugBehavior>();
if (debug == null) {
    ServiceHost.Description.Behaviors.Add(new ServiceDebugBehavior {     IncludeExceptionDetailInFaults = true });
} else {
    if (!debug.IncludeExceptionDetailInFaults) {
        debug.IncludeExceptionDetailInFaults = true;
   }
}