WCF:FaultContract(typeof(ExceptionDetail))问题

2023-12-25

我已经把属性[FaultContract(typeof(ExceptionDetail))]为我的运营合同。当我尝试将服务添加到客户端应用程序时,出现此错误 -"Custom tool error: Failed to generate code for the service reference 'ServiceReference1'. Please check other error and warning messages for details."

但是当我注释掉FaultContract 属性时,我可以在我的客户端应用程序中添加wcf 服务引用。


拥有FaultContracts的目的是首先能够从服务传回SOAP错误,这不会破坏服务器和客户端之间的通信通道(优雅且可互操作地处理.NET异常等错误条件),其次,使用FaultContracts,您的服务器将抛出类型错误(FaultException<T>)并且您的客户可以捕捉到这些。

如果您想要或需要真正的互操作性,您需要:

  • 将所有的FaultContract类型定义为用[DataContract]属性修饰的类
  • 捕获服务器上的所有 .NET 异常(使用例如 IErrorHandler 接口)并将它们转换为可互操作的 SOAP 错误

如果您控制线路的两端并且两端都是 .NET,那么您可以简化这一步骤:在服务器上,处理所有 .NET 异常并将它们转换为例如FaultException<ArgumentOutOfRangeException>,也就是说,创建一个“故障(无论 .NET 异常)”,然后在客户端捕获这些类型的FaultException 并处理它们:

[FaultContract(typeof(ArgumentOutOfRangeException)]
[OperationContract]
public void CallService(.......)

然后在您的实现中使用:

try
{
    clientProxy.CallService();
}
catch(FaultException<ArgumentOutOfRangeException> ex)
{
   // handle the most specific exception first
}
catch(FaultException ex)
{
   // handle all other, unspecific server faults
}
catch(CommunicationException ex)
{
   // handle all other, client-proxy related WCF errors
}
catch(Exception ex)
{
   // handle anything else....
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WCF:FaultContract(typeof(ExceptionDetail))问题 的相关文章

  • WCF、REST、SSL、客户端、自定义证书验证

    我有一个无法解决的具体问题 让我详细解释一下 我是这项技术的新手 所以我可能使用了一些错误的术语 如有不明白之处 请指正并解释或要求解释 我正在创建一个自托管的 WCF REST 服务器 托管在 WPF 应用程序中 它使用 https SL
  • 如何生成wcf服务库项目的wsdl文件?

    我的解决方案中有一些 Wcf 服务库项目 不是 Wcf 服务应用程序 我必须将项目的 wsdl 文件提供给将使用这些服务的同事 我怎样才能做到这一点 提前致谢 您可以使用WCF服务主机 http msdn microsoft com en
  • IIS6 中托管的 WCF 服务在生产中收到 404

    我已经构建了一个简单的 WCF 服务并将其部署到 IIS6 我注意到它可以在我的开发和登台环境中运行 但不能在生产环境中运行 每次我尝试点击服务元数据链接时 都会收到 404 页面 我检查了我能想到的所有 IIS 配置 它们是相同的 所以我
  • 如何使用 SOAP 且不使用 WSE 在 .NET 中签署 Amazon Web 服务请求

    亚马逊产品广告 API 以前称为 Amazon Associates Web Service 或 Amazon AWS 实施了一项新规则 即自 2009 年 8 月 15 日起 向其发送的所有 Web 服务请求都必须经过签名 他们在其网站上
  • 双工服务的实例、会话和并发

    我有一个要求 服务应该每秒向客户端发送一条消息 该服务只能有一个客户端 我创建了一个双工服务 现在对该服务的实例 并发性和会话感到困惑 双工服务是否始终需要会话 会话模式 必需 InstanceContextMode 是否应始终为 PerS
  • 如何从Windows服务公开restful接口?

    我编写了一个公开restful接口的wcf服务 现在我使用iis作为wcf服务主机 除了暴露其余部分之外 我还需要对我的应用程序执行一些操作 为此 我必须将我的应用程序作为 Windows 服务运行 但是使用iis作为主机不会使我的wcf服
  • 从 Angular 2 和 Silverlight 应用程序使用相同的 WCF 服务

    目前 我们有一个带有 WCF 服务 后端 的 Silverlight 应用程序 前端 现在 我们将用 Angular 2 应用程序替换 Silverlight 应用程序 而不更改 WCF 服务 只有 UI 会发生变化 在开始使用 Angul
  • 我是否需要在 WCF DataContract 中公开构造函数才能使其在客户端上的对象实例化期间工作?

    我在 WCF 服务中有一个类 我们称之为A A是一个数据协定 其中包含另一个自定义对象的集合作为其数据成员之一B 为了避免客户端出现空引用问题 我实例化了BList在构造函数中像这样 DataContract public class A
  • WCF 包装代理客户端

    我的项目中有许多在客户端应用程序中使用的 Web 方法 我不想写这样的代码 using ServiceClient sc new ServiceClient Invoke service methods sc Method1 相反 我想写
  • App.config 之外的 WCF ChannelFactory 配置?

    我有一个使用插件系统的 Windows 服务 我在插件基类中使用以下代码为每个 DLL 提供单独的配置 因此它将从plugin dll config string dllPath Assembly GetCallingAssembly Lo
  • 多线程 C# 应用程序中的惰性单例

    我正在开发一个使用 WCF Web 服务的多线程 C 应用程序 与 Web 服务的连接将有一个特定的超时时间 我们可以定义该超时时间 之后连接将关闭 我希望使用单例类来存储与 Web 服务的连接 我试图获取实例如下 CLazySinglet
  • 在 WCF 中序列化 IDictionary

    我们有一个现有的应用程序 其中一个 DTO 对象的属性类型为IDictionary
  • WCF 服务契约将被 XML 和 Json 序列化

    我如何创建要加入的服务合同XmlSerializer 格式也WebMessageFormat Json在 WCF RESTful 服务中 我需要的是从 ASP Net 1 1 的代码后面调用 CallADSWebMethod 操作契约 该契
  • WCF 发现根本不起作用

    我正在尝试将临时发现添加到简单的 WCF 服务客户端设置 当前通过控制台应用程序中的自托管实现 在 Windows 7 上使用 VS2010 进行调试 并执行我在在线教程中可以找到的任何操作 但发现客户端仍然什么也没找到 不用说 如果我打开
  • 实体框架和数据库集

    我正在尝试设置一个通用接口来从存储库中检索实体 问题是我需要从 WCF 服务请求数据 而据我所知 泛型不能与操作合约一起使用 所以我有这个在控制台应用程序中工作 而不是使用服务调用 public virtual List
  • WCF 的“using”语句中出现异常,未正确关闭连接。如何关闭有故障的 WCF 客户端连接或出现异常的连接?

    StackOverflow 上有几个有关关闭 WCF 连接的问题 但排名最高的答案是指此博客 http marcgravell blogspot com 2008 11 dontdontuse using html http marcgra
  • 尽管受信任的根 CA,WCF 错误“X.509 证书链构建失败”

    我收到了中提到的错误这个问题 https stackoverflow com questions 4256520 wcf error the x 509 certificate cn localhost chain building fai
  • WcfSvcHost 的跨域异常

    对于另一个跨域问题 我深表歉意 我一整天都在与这个问题作斗争 现在已经到了沸腾的地步 我有一个 Silverlight 应用程序项目 SLApp1 一个用于托管 Silverlight SLApp1 Web 的 Web 项目和 WCF 项目
  • WCF RIA 服务 - 加载多个实体

    我正在寻找一种模式来解决以下问题 我认为这很常见 我正在使用 WCF RIA 服务在初始加载时将多个实体返回给客户端 我希望两个实体异步加载 以免锁定 UI 并且我想利用 RIA 服务来执行此操作 我的解决方案如下 似乎有效 这种方法会遇到
  • 尝试对无法访问的主机进行套接字操作

    一位客户在连接到我们的服务器服务的 WCF 客户端上报告了此错误 消息 尝试对无法访问的主机进行套接字操作 类型 System Net Sockets SocketException 从这个链接http msdn microsoft com

随机推荐

  • 编译需要参数的表达式

    好吧 我确信这很简单 但我正在经历一个高级时刻 我有一个简单的 BinaryExpression 大于 左侧是 ParameterExpression 右侧是 ConstantExpression 我想将此表达式编译为一个函数 我可以调用该
  • 如何在 python-socketio 中将消息从 python 服务器发送到 javascript 客户端?

    socketio客户端成功连接到服务器并发送消息emit到服务器 但到客户端的另一个方向服务器失败 我找不到错误的根源 这是 这是服务器 pythonapp py基于中的示例python socketio https python sock
  • 类型错误:“_VirtualList”对象不可调用

    当我运行此代码时 我的 GUI 显示此错误 VirtualList 对象不可调用 我哪里错了 import PyPDF2 pdf open the alchemist paulo coelho pdf rb reader PyPDF2 Pd
  • 如何限制docker容器上传的速率?

    我需要防止长时间运行的多 TB 上传耗尽我的所有网络带宽 但我只能在进程级别限制其带宽使用 这意味着减慢整个计算机的网络接口或减慢该用户的网络流量不会工作 幸运的是 上传是用 Docker 容器化的 我该怎么做才能减慢 docker 容器的
  • PHP后台进程

    我写了一个 php irc 机器人 但我需要它在后台工作 有了这个 就不会有退出之类的事情了 做这个的最好方式是什么 感谢致敬 看看下面的网站 关于如何编写 PHP 守护进程有一个相当深入的解释 http kevin vanzonnevel
  • 二维等距网格中的点击检测?

    我从事网络开发已经很多年了 我正在慢慢地参与游戏开发 对于我当前的项目 我有这个等轴测图 我需要使用算法来检测正在单击哪个字段 顺便说一句 这一切都是在浏览器中使用 Javascript 实现的 The map看起来像this https
  • Adobe InDesign .jsx 脚本 执行 .jsx 脚本

    完成执行另一个 jsx 脚本后 如何才能让我的 jsx 脚本执行完毕 也许这将有助于理解我正在尝试做的事情 WebCard jsx file function mySnippet
  • 如何在 GitHub Markdown 中垂直对齐元素?

    如何垂直对齐下图中的图像和文字 我在 Markdown 中是这样写的 a a Download https api bintray com packages edsilfer maven search interface images do
  • 如何获取“Angular2 for TypeScript”(测试版)中的 li-Element 以添加特定的 CSS 类?

    在我的 Angular2 项目中 我试图实现一个搜索框 其结果框看起来就像在 Google 中一样 这就是我得到的并且它有效 但不幸的是 当您搜索某些内容并按 key down 或 key up 时 结果框中的搜索结果不会像 Google
  • for 循环处理不同的变量名

    我正在编程一段时间 但为此我还找不到答案 假设我想在更改变量名称时运行循环 可以说我有 int ran1 int ran2 int ran3 现在我想运行一个 for 循环 将数字放入其中 for int k 0 k lt 3 k ran
  • SOAP 泛型类型序列化

    我们创建了一个类来包装 Web 服务响应的有效负载和公共信息 如下所示 public class ItemResponse
  • 两个第 3 方库中 uint32 的 Typedef 重新定义 (C2371)

    在我的应用程序中我使用Box2D http www box2d org and 蜘蛛猴 https developer mozilla org en spidermonkey 这两个库都定义了 uint32 类型 这显然在同一编译单元中使用
  • 如何使用 SHOW TABLES 只获取表而不获取视图?

    SHOW TABLES为您提供表格 视图 如何仅检索表 show full tables where Table Type BASE TABLE 逐字 或者换句话说 show full tables where Table Type VIE
  • iOS:从 Storyboard 中唯一标识 ViewController

    我有一个习惯ViewController这意味着可重用 并且任意数量的实例将被链接在一起NavigationController在 Storyboard 中 所有这些都与委托共享相同的模型 The ViewController需要告诉模型它
  • 在 macOS 10.12+ 中接收承诺的电子邮件

    以前 我使用以下方法从 Mail app 中拖放的电子邮件 线程 中发现电子邮件元数据 if let filenames draggingInfo namesOfPromisedFilesDropped atDestination URL
  • SimpleQueue 与 Python 中的队列 - 使用 SimpleQueue 的优点是什么?

    The queue 同步队列类 https docs python org 3 library queue html只是简单地指出 SimpleQueue 允许的函数较少 我需要用于多线程应用程序的非常基本的队列功能 使用 SimpleQu
  • Java中如何信任证书颁发机构?

    我的应用程序连接到 SSL Web 服务 该服务使用证书来验证其身份 最近 该证书发生了变化 由于它不是由受信任的机构签名的 因此我的部分应用程序失败了 为了防止将来出现这种情况 该服务的建议是我应该开始信任现有证书的签名机构 而不是单个证
  • iPhone 特别分配为团队管理员并拥有团队代理证书?

    我是我们公司 ADC 上 iPhone 项目的团队管理员 但不是团队代理 团队代理 作为一个单独的人 能否为我提供一份分发配置文件的副本 我可以将其与 XCode 一起使用来创建临时构建 这是因为团队代理人员不是技术人员 但他们是报名参加该
  • 包含函数的 JSON

    我有一个网站 它返回类似 JSON 的数据结构 如下所示 name tom jones no 123 storedproc function callbuyer 0123 我正在使用这些数据 ajax 数据类型为 JSON 不幸的是 我的
  • WCF:FaultContract(typeof(ExceptionDetail))问题

    我已经把属性 FaultContract typeof ExceptionDetail 为我的运营合同 当我尝试将服务添加到客户端应用程序时 出现此错误 Custom tool error Failed to generate code f