FaultException.Detail 返回空

2023-11-21

我试图在 WCF 客户端上捕获给定的FaultException。我基本上需要从故障类中提取内部描述,以便我可以将其打包到另一个异常中,以便上层执行任何操作。

我已经成功完成了多次,这次的不同之处在于,错误被声明为数组,正如您可以从抛出异常的方法顶部声明的服务引用属性中看到的那样:

[System.ServiceModel.FaultContractAttribute(typeof(FaultClass[]), Action = "http://whatever/", Name = "whateverBusinessFault")] 

这是我的代码:

try
{
  // call service here
}
catch (FaultException<FaultClass[]> ex)
{
  if (ex.Detail != null && ex.Detail.Length > 0)
  {
    throw new CustomException(ex.Detail[0].description);
  }
  else
  {
    throw;
  }
}

问题是详细信息(这是一个数组)总是返回空即使我可以在 WCF 跟踪的 SOAP 响应中看到数据(描述字段等),也可以在代码中执行此操作。

所以我需要的东西肯定会回来,但由于某种原因,它要么没有被反序列化,要么我无法从代码中获取它。

任何帮助表示赞赏!

UPDATE:

尝试使用 @Darin 建议但没有运气,我从 XmlReader 中提取的字符串是“/r/n”:

var sb = new StringBuilder();

using (XmlReader reader = fault.GetReaderAtDetailContents())
{
  while (reader.Read())
     sb.AppendLine(reader.ReadOuterXml()); 
}

var detail = sb.ToString();

看起来细节部分根本没有出现!


我在 UPS 论坛上找到了解决方案:

https://developerkitcommunity.ups.com/index.php/Special:AWCforum/st/id371

“问题是 Visual Studio 没有完全正确地映射出 ErrorDetail 对象。ErrorDetail 节点称为“ErrorDetail”,但为其生成的类型是“ErrorDetailType”。我编辑了为每个服务生成的 reference.cs 类。正在使用并添加了一个 TypeName:”

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

FaultException.Detail 返回空 的相关文章

  • 多种形式的异常处理

    当我调试时与运行编译的 exe 时 我看到不同的行为 异常被捕获或未被捕获 我有两个表格 Form1 和 Form2 Form1 上有一个按钮 用于实例化并调用 Form2 上的 ShowDialog Form2 上有一个按钮 故意产生除以
  • WCF - 如何在 JSON 中序列化和反序列化?

    我在 WCF 中编写了几个类 数据契约和服务契约 并且尝试在 JSON 中进行序列化和反序列化 如果我需要以下 JSON 结构 我将如何创建 DataContract s response locations location id 12
  • 为什么我的 WCF Web 服务在具有不同字段名称的不同命名空间中呈现此对象?

    上下文 我正在尝试与 DocuSign 的 Connect 通知服务集成 我已经使用名为 DocuSignConnectUpdate 的方法设置了 WCF 服务 该方法将 DocuSignEnvelopeInformation 作为其唯一参
  • 在 Spring 中,为什么 POJO 上的 CGLib 的行号会丢失?

    Spring MVC Web 应用程序 我有一个不带行号的堆栈跟踪 显示在底部 我认为这是由于 CGLib 在控制器上运行所致 但这对我来说很奇怪 实际的异常发生在ServerBatchRemoteRequestAcceptor 一个没有注
  • RuntimeException 以外的异常

    Java中除了RuntimeException之外还有其他可能发生的异常吗 谢谢 是的 有Three kinds 检查异常 编译器会让您知道何时可能会抛出它们 最有可能是由于环境中的故障 如果程序可以用它们做某事 则应该捕获它们 否则最好让
  • 如何处理过时的连接?

    我们的应用程序是一个 J2EE 应用程序 在 Websphere 6 1 上通过 Mainframe DB2 后端使用 Struts EJB Hibernate 最近已投入生产 我们收到过时的连接异常当用户第一次或有时登录应用程序时 此异常
  • 从 AspectJ 获取返回值或异常?

    我能够从建议的方法调用中获取签名和参数 但我无法弄清楚如何获取返回值或异常 我有点假设它可以通过使用 around 并继续以某种方式完成 您可以使用after returning and after throwing开头的建议以下文件 ht
  • WCF 服务限制

    我在控制台应用程序中部署了一个 WCF 服务 并启用了 BasicHTTPBinding 和 SSL 还设置了以下属性 AspNetCompatibilityRequirements RequirementsMode AspNetCompa
  • log4net 是否会杀死我的 WCF 单元测试?

    我的解决方案中有三个项目 提供我想要测试的功能的 WCF Web 服务 调用该 Web 服务的 Web 应用程序 对服务运行测试的测试项目 Web 服务和 Web 应用程序都使用 log4net 和单独的配置文件 并在 AssemblyIn
  • 如何防止 WCF 客户端应用程序中的 BufferManager / PooledBufferManager 浪费内存?

    分析一个 WCF 客户端应用程序 我没有编写 而且仍然不太了解 该应用程序通过 SOAP 与一堆服务进行通信 运行几天后会抛出 OutOfMemoryException 我发现 net 的 PooledBufferManager 会即使应用
  • 哪个是对的? catch (_com_error e) 还是 catch (_com_error& e)?

    我应该使用哪一个 catch com error e or catch com error e 第二 这是我试图引用萨特的话 按值抛出 按引用捕获 学会catch正确 按值 而不是指针 抛出异常 通过引用捕获它们 通常是const 这是组合
  • Java中的异常通知

    使用 Tomcat 的 Web 应用程序有什么好的异常通知系统吗 寻找与 exception notification 等价的库 这些库可作为 Rails 的插件使用 看一下http logging apache org log4j 1 2
  • 创建从 std::exception 派生的用户异常? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 如何从标准异常创建用户异常类 解决以下情况 假设我有一个类 其中包含一些指示对象类型的枚举 因此 根据类型 成员函数是可用的 调用不可用的成员函数应该
  • WCF 中的实例停用是什么?

    我最近接触到这个词Instance Deactivation a 那是什么 b 我们需要这个做什么 c 它在什么情况下有用 我正在寻找一个易于理解的简单答案 如果可能的话 可以使用一些伪代码 Thanks 当调用 WCF 方法时 它会传递给
  • 启用 WCF 数据服务默认接受/返回 JSON

    我有一个 WCF 数据服务 我希望默认情况下为所有操作返回 JSON 我可以在配置 通过服务属性中设置它吗 为了通过 format 标签启用 json 如下所示 host 8038 YourService svc format json 将
  • Java 应用程序中 PKIX 路径构建失败

    将应用程序从 Windows 2000 迁移到 Windows 2008 R2 Server 后 我花了将近一周的时间才让我的应用程序正常运行 步骤 安装Java JDK 1 7 0 25 设置系统环境变量JAVA HOME to C Pr
  • 处理ORACLE异常

    我需要处理ORA 01400 错误 http www techonthenet com oracle errors ora01400 php 无法使用异常句柄将 NULL 插入 SCHEMA TABLE NAME COLUMN NAME O
  • App Engine 中超时异常的名称是什么?

    出于某种原因 我的印象是它只是被称为 超时 但事实似乎并非如此 Thanks 对于数据存储区调用 例外情况是 google appengine ext db Timeout 对于超出的总 挂钟 持续时间 例外情况是 google appen
  • 是否可以通过服务类型的实例实例化 WebServiceHost,而无需无参数构造函数?

    我正在尝试创建自托管System ServiceModel Web WebServiceHost NET 4 但是我遇到了构造函数的问题 有以下三种选择 WebServiceHost 一个无参数的构造函数似乎毫无意义 因为无法指定服务的类型
  • iPhone / .NET WCF 互操作性

    我正在构建一个 NET Web 服务 和一个将使用这些服务的 iPhone 应用程序 我很好奇是否有任何构建两者之间交换数据的协议的最佳实践 对于我来说 基于 SOAP 的 Web 服务对于 iPhone 应用程序来说太沉重了 也许可以用

随机推荐