客户端中未正确捕获 WCF 自定义错误异常

2023-12-21

我正在尝试创建一些自定义的FaultException。我做了一个DataContract类称为CreateFault.

[DataContract]
public class CreateFault
{
    private string report;

    public CreateFault(string message)
    {
        this.report = message;
    }

    [DataMember]
    public string Message
    {
        get { return this.report; }
        set { this.report = value; }
    }
}

然后我将错误抛出到服务方法中。

In IService1.cs

[OperationContract]
[FaultContract(typeof(CreateFault))]
void TestFaultException();

and in Service1.cs

public void TestFaultException()
{
    throw new FaultException<CreateFault>(new CreateFault("CreateFault message"), "Message abt exception");
}

我抓住了FaultException在我的客户中。

private void btnTest_Click(object sender, RoutedEventArgs e)
{
    try
    {
        ServiceReference1.Service1Client client = new ServiceReference1.Service1Client();
        client.TestFaultException();
    }
    catch (FaultException<CreateFault> ex)
    {
        MessageBox.Show(ex.Detail.Message, "Success", MessageBoxButton.OK, MessageBoxImage.Error);
    }
    catch (FaultException ex)
    {
        MessageBox.Show(ex.Message, "Failure", MessageBoxButton.OK, MessageBoxImage.Error);
    }
    catch (Exception ex)
    {
    }
}

现在问题来了。当我在 Visual Studio 2010 中创建 WCF 服务应用程序项目时,它的工作方式与预期一致。错误被捕获在:

catch (FaultException<CreateFault> ex)

但是当我使用自定义创建 WCF 服务库项目时FaultExceptions客户无法识别我的自定义异常。相反,它会捕获以下错误:

catch (FaultException ex)

为什么它不能与 WCF 服务应用程序项目一起使用?

编辑: 这是我在调试过程中捕获异常时得到的结果

catch (FaultException ex)

(在立即窗口中输入 ?ex)

{“异常消息”}

[System.ServiceModel.FaultException<WpfApplication1.ServiceReference2.CreateFault>]: {"Message abt exception"}
base {System.ServiceModel.CommunicationException}: {"Message abt exception"}
Action: "http://tempuri.org/IService1/TestFaultExceptionCreateFaultFault"
Code: {System.ServiceModel.FaultCode}
Message: "Message abt exception"
Reason: {Message abt exception}

Edit2:

发现问题了。我有两个服务引用,他们都有 CreateFault DataContract。当我运行该程序时,它使用了错误的程序。

当我更改为

catch (FaultException<ServiceReference2.CreateFault> ex) 

有效


发现问题了。我有两个服务引用,他们都有 CreateFault DataContract。当我运行该程序时,它使用了错误的程序。

当我更改为

catch (FaultException<ServiceReference2.CreateFault> ex) 

有效

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

客户端中未正确捕获 WCF 自定义错误异常 的相关文章

  • 如何解决“HTTP 错误 404.3 - 未找到”错误?

    简单的问题 我启动 VS2008 并创建一个新的 WCF 服务应用程序 这将创建一个默认应用程序 并使用一些测试方法来显示它的工作原理 我按 CTRL F5 确实有效 伟大的 但是 它使用 Visual Studio 开发服务器 我不想支持
  • 强制 WcfSvcHost.exe 使用我的自定义服务主机

    是否可以强制 WcfSvcHost 当我执行 F5 或在解决方案中调试另一个项目时自动执行 使用自定义 ustom 服务 通过使用服务工厂 我的自定义服务主机在我的 asp net 主机容器中运行良好 该服务工厂又调用自定义服务库 但是当
  • 是否可以从 VS2010 插件刷新 WCF 服务引用?

    我想在 VS2010 插件中 模拟 右键单击 更新服务引用命令 我有一个对包含 Silverlight 项目的引用 我知道服务引用的名称和服务的 url 我发现了这个 http dedjo blogspot com 2007 03 addi
  • autofac wcf注册错误

    我正在尝试在 Wcf 上尝试使用 Autofac 进行结构 namespace WcfService1 Model DataContract IsReference true public partial class Account Dat
  • 如何自动执行/安排 IIS 中托管的 WCF 服务调用?

    我有一个非常简单的服务合同 用于管理自己的数据导入 类似于 using System ServiceModel namespace Company Services Domain Contract ServiceContract Name
  • WCF 数据契约/序列化

    我创建了一个简单的 WCF 应用程序 它公开一个操作 此操作采用复合数据类型作为参数 我没有用 DataContract 属性修饰这个复合数据类型 但这是有效的 我可以在 WSDL 中看到它的架构 现在我的理解是 这个新的自定义类型应该用
  • WCF - IsOneway 的行为不像 Oneway 操作

    我已在服务的某些方法上定义了 OneWay 属性 但它们的行为并不像 Oneway 调用 我的客户等待呼叫完成并从服务返回 我假设单向操作是非阻塞操作 并且客户端不关心被调用函数会发生什么 它只是调用并忘记它 这是对的吗 问题 调用 Ope
  • 如何在WCF Rest服务中从流上传图像

    我正在尝试创建 wcf 服务 该服务将上传 pdf doc xls 图像等文件 但 pdf txt 文件正在上传并正确打开 但是当我尝试上传图像文件时 文件正在上传 但是图像不可见 OperationContract WebInvoke M
  • WCF 回调:它可以与 Java 互操作吗?

    目前 我以 正常 方式实现所有 Web 服务 也就是说 我在 Eclipse 中创建一个 WSDL 文件 然后使用 WSCF blue 一个 Visual Studio 扩展 自动生成必要的代码 它是回复 请求 不过 我希望改用回调 这样我
  • 如何在 REST WCF 服务中接受任意 JSON 对象?

    我想实现这样的服务方法 OperationContract WebInvoke RequestFormat WebMessageFormat Json ResponseFormat WebMessageFormat Json public
  • WCF:在 ServiceModel 客户端配置部分中找不到引用协定“IService”的默认端点元素。当托管在 IIS 中时

    我有一个 WCF 服务托管在 IIS 中 我还有一个 WCF 客户端 控制台应用程序 我用过svcutil构建代理类和配置文件 然后将它们添加到我的客户端项目中 它建造得很好 但是当我尝试运行该程序时 它抛出以下异常 在 ServiceMo
  • 测试项目和配置文件

    我的 Visual Studio 2008 解决方案中有这种设置 一个使用库 Lib1 需要 app config 文件中的一些配置条目 的 WCF 服务项目 WCFService 我有一个单元测试项目 MSTest 其中包含与 Lib1
  • WCF 服务 - 自定义主体

    在 WCF 服务类的构造函数中 我将当前主体设置为消息头中传递的主体的主体 Thread CurrentPrincipal OperationContext Current IncomingMessageHeaders GetHeader
  • 如何使用 WSDL 和 XSD 的注释生成 .NET 类

    有一些 XSD 和 WSDL 我想从它们生成 C 代码 我使用了 svcutil exe 但它不会从 XSD 注释生成 XML 注释
  • 关闭WCF代理

    当涉及到 WCF 代理时 我始终遵循 try Close catch Abort 的指导 我现在面临一个代码库 它在 MVC 控制器中创建代理并让它们超出范围 我认为我们需要编辑代码库以使用 try Close catch Abort 但存
  • 无法从 Windows 7 上的 Windows 服务启动桌面应用程序

    HI 我在 Windows 7 上有 C WCF Windows 服务 以具有管理员权限的用户身份登录 我正在尝试在服务启动后启动桌面应用程序 我发现的所有讨论都是关于 Windows 工作站和桌面 我创建了一个单独的线程 设置线程工作站和
  • 在 WCF Web 编程模型中,如何编写具有一组查询字符串参数(即具有相同名称)的操作协定?

    使用 WCF Web 编程模型 可以指定一个操作契约 如下所示 OperationContract WebGet ResponseFormat WebMessageFormat Xml UriTemplate SomeRequest qs1
  • WCF WebHttp 混合身份验证(基本和匿名)

    所有这些都与 WebHttp 绑定有关 托管在自定义服务主机中 IIS 目前不是一个选项 我已经实现了自定义 UserNamePasswordValidator 和自定义 IAuthorizationPolicy 当我将端点的绑定配置为使用
  • 创建WCF数据服务以在服务主机中使用

    我有一个服务应用程序 它通过不同的绑定托管多个 WCF 端点 我现在想在同一服务主机中托管 WCF 数据服务 这个帖子 https stackoverflow com questions 2926767 wcf data service h
  • 通信对象 System.ServiceModel.Channels.ServiceChannel 不能用于通信

    通信对象System ServiceModel Channels ServiceChannel 无法用于通信 因为它处于故障状态 这个错误到底是什么意思 我该如何解决它 您收到此错误是因为您让服务器端发生 NET 异常 并且您没有捕获并处理

随机推荐

  • 如何在R中计算后代的平均出生年份?

    我想知道每个人的直系后代的平均出生年份 包 pedigree 有一个函数 countOff 可以计算所有后代 包括孙子 这不是我想要的 这是我的数据框 df ID lt 1 30 MomID lt c NA NA NA NA NA NA N
  • React App 安装后编译失败

    运行安装脚本后 服务器启动并提供一个页面 在 无法编译行 之后显示相同的文本 我正在运行 Windows 10 自动更新今天刚刚更新了我的电脑 就在我安装 create react express 之前 PS H mern passport
  • 计算 InfluxDB 中开始和结束事件之间的持续时间

    我对 InfluxDB 有两个写入点 一个是开始 另一个是结束 我只需要确定这两个事件之间的持续时间 并围绕它进行查询 InfluxDB有difference 聚合方法 但它不适用于时间元字段 提供自定义时间戳值是实现此目的的唯一方法吗 A
  • maven程序集,避免zip文件中的完整路径?

    我有一个多模块项目 其中包含 2 个模块 每个模块都有自己的 pom xml 和指向这些模块的父 pom xml 当我在父 pom 上运行 mvn clean package 时 每个项目最终都会在其自己的目标文件夹下生成一个 zip 文件
  • 无法将图像上传到 WCF Rest 服务

    我正在创建 WCF Rest 服务以从移动应用程序上传图像 但我得到了 远程服务器返回错误 400 错误请求 任何人都可以指出我做错了什么吗 以下是我的定义 OperationContract WebInvoke BodyStyle Web
  • Vim 和 Java:自动添加 java import 语句

    The tip http vim wikia com wiki Add Java import statements automatically错误是 E349 光标下没有标识符 E433 没有标签文件 和 E426 找不到标签 公共 我觉
  • SQL 查询 - 跨多个字段搜索

    我正在尝试实现一种搜索 您可以在其中输入多个搜索词来形成 AND 条件 它还应该在数据库的不同字段中进行搜索 例如 当你进入时的你 比尔 西雅图 你应该得到一个记录NAME火柴Bill and CITY火柴Seattle 你不应该得到任何只
  • 使用 JAXB 解组 XML,无需取消转义字符

    想象一下以下情况 我们从某些外部工具收到一个 xml 文件 最近 在此 xml 中 节点名中或其 richcontent 标记中可能存在一些转义字符 如以下示例 简化 所示
  • NSMutableData 消失

    在我的程序中 我有一个 NSMutableData 变量 用于收集信息http www nhara org scored races 2013 htm http www nhara org scored races 2013 htm 大约第
  • peewee - 与 Database() 初始化分开定义模型

    我需要使用一些 ORM 引擎 比如peewee 用于在我的 python 应用程序中处理 SQLite 数据库 然而 大多数此类库都提供这样的语法来定义models py import peewee db peewee Database h
  • React:无法导入 .tsx 文件

    刚开始将 TypeScript 与 React 结合使用 当我导入来自 tsx 文件的组件时 默认情况下它假定它是 js 文件 该错误表明该目录中没有 About js 文件或 Contact js 文件 此外 TS linter 不允许我
  • MongoError:没有经过身份验证的用户

    我正在尝试编写一个脚本来使用以下命令将管理员用户和通用用户添加到 MongoDB 数据库mongodbNodeJS 驱动程序 版本3 0 1 我可以创建数据库的管理员用户 但不能创建普通用户 我总是得到MongoError there ar
  • 带子域和 url 模式的 mod_rewrite

    我想使用子域作为 mod rewrite 的获取变量并使用一些参数 eg page language site counter gt index php o operator lg language s arg1 c arg2 如何使用 m
  • 解决 XCode 7 崩溃报告器中的问题

    我最近发布了我的应用程序的 2 0 版本 https itunes apple com app neo virtual reality for reddit id1013650716 https itunes apple com app n
  • 如何从 Android 设备屏幕制作 GIF

    我可以捕获 Android 设备屏幕 adb shell screencap p perl pe s x0D x0A x0A g gt adb screenshot date Y m d H M S png 如何将所有这些图像压缩成单个 G
  • FormContext 在本地 SimpleForm 内返回“null”

    希望有人能指出我正确的方向来尝试调试这个问题 我正在将使用react admin构建的应用程序重构为版本4 0 0 beta 3 但我的自定义表单都无法正常工作 也就是说 当我调用任何新的react hook form方法 例如 useFo
  • CArray 不会在内存重新分配时调用复制构造函数,现在怎么办?

    假设我有一个类需要调用复制构造函数来制作正确的副本 struct CWeird CWeird number 47 target number CWeird const CWeird other number other number tar
  • 如何让两个多播套接字监听具有相同端口的两个多播通道

    我大致有以下多播套接字代码 效果很好 现在我需要在同一台机器上加入两个多播频道 例如 224 10 13 18 55001 224 10 13 34 55001 根据它来自哪个 IP 地址 我需要以不同的方式处理该消息 问题是如何为端口值相
  • 连接到 Joomla 中的第 3 方数据库?

    我需要连接到 Joomla 中的另一个数据库 那是在另一台服务器上 这是一个插件 我需要从表中提取一些数据 现在我不想用这个数据库来运行Joomla 我已经有了Joomla 在其服务器上的自己的数据库上安装并运行 但我想连接到另一个数据库
  • 客户端中未正确捕获 WCF 自定义错误异常

    我正在尝试创建一些自定义的FaultException 我做了一个DataContract类称为CreateFault DataContract public class CreateFault private string report