问题标签 [faultexception]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
silverlight - silverlight 客户端不理解故障异常
我有一个抛出异常的 WCF 服务,我试图在我的 silverlight 客户端代码中捕获失败。我正在使用未声明的故障进行调试,这是我的服务方法:
现在在我的 silverlight 客户端视图模型中,在服务的回调方法中,我尝试像这样处理它:
在这一行else if (e.Error is FaultException)
我仍然得到 System.Net.WebException {远程服务器返回错误:NotFound.}
这些是配置条目
这是服务类声明
此服务位于同一 silverlight 解决方案中的另一个项目中。为什么我的 silverlight 客户端无法获得我抛出的错误异常?
谢谢你的时间...
wcf - WCF FaultContract 因 NamedPipe 而失败
我有一个使用 WCF 和命名管道的简单 IPC 机制。我的目标是将异常详细信息(包括堆栈跟踪)传播到客户端以进行日志记录(应用程序日志记录的其余部分位于客户端上)。
如果我使用以下代码,我可以在客户端捕获 FaultException<Exception> 并查看异常详细信息:
合同:
执行:
客户:
这工作正常,我看到控制台上打印的消息。但是,如果我想使用自己的派生异常而不是基 Exception 类,它会失败。
自定义例外:
将 IService.DoSomething 上的 FaultContract 更改为
将 Service 中的 throw 子句更改为
将客户端中的 catch 子句更改为
当我执行此操作时,在客户端上捕获到 CommunicationException 并出现错误: System.ServiceModel.CommunicationException:从管道读取错误:管道已结束。(109, 0x6d)。
MyException 类位于客户端和服务器均可使用的共享库中。
这个问题与这个问题非常相似,但这对我没有帮助。
wcf - 如何从异步 WCF 调用中捕获 FaultExceptions?
我想调用一个可以抛出 FaultException 的 wcf 服务,但我想异步执行此操作。如果一切正常,它不会返回异常,但如果服务抛出我的一个 FaultExceptions,在客户端中我会得到一个 CommunicationObjectFaultedException,并且它的所有属性都不包含我原来的 FaultException。
从到目前为止我可以了解到的信息是信息存储在其他地方。谁能告诉我它到底在哪里?
例如,这两个处理用户的注册:
wcf - Wcf 和 ExceptionDetail 问题
我创建了自己的类,如下所示:
那么我的 wcf 服务接口如下所示:
现在一切都在开发环境中按预期工作 - 当我提出FaultException
:
它在客户端被抓住没问题。
当我开始使用wcftestclient.exe
工具测试我的服务时,就会出现问题。我收到此错误:
添加服务失败。服务元数据可能无法访问。确保您的服务正在运行并公开元数据。 错误:无法从 http://localhost:33620/MyService.svc获取元数据如果这是您有权访问的 Windows (R) Communication Foundation 服务,请检查您是否已在指定地址启用元数据发布。有关启用元数据发布的帮助,请参阅位于 http://go.microsoft.com/fwlink/?LinkId=65455.WS-Metadata Exchange Error URI: http://localhost:33620/MyService.svc的 MSDN 文档 元数据包含无法解析的引用:' http://localhost:33620/MyService.svc '。无法连接到 http://localhost:33620/MyService.svc。TCP错误代码10061:无法建立连接,因为目标机器主动拒绝它127.0.0.1:33620。无法连接到远程服务器 由于目标机器主动拒绝,无法建立连接 127.0.0.1:33620
一旦我[FaultContract(typeof(MyOperationFault))]
从服务的方法中注释掉 -就会wcftestclient
开始工作而不会出现故障。如何解决这个问题?
wcf - WCF:DataContract 类中的 SOAP 错误或正常异常
我的 Service 的 OperationContract 的主要参数是一个名为 Preapproval 的类。在 Preapproval 类中,有一些用于 DataMember 属性的公共 getter/setter。我有验证设置器输入的代码,这样我会抛出 ArgumentException,如果说参数为空白或超出域的正确范围。
如果输入无效,我通常会在这里抛出 ArgumentException。由于这是 WCF 情况,我是否必须在此处抛出预定义的 FaultException 而不是 ArgumentException?我知道,在其他地方,我可能会捕获一般异常并将它们作为 FaultExceptions 重新抛出,但是在 WCF 管道自动执行的某些工作中,此活动将发生在堆栈的更高层。
例如,当调用者调用我的服务时,序列化程序将反序列化他们的 SOAP,尝试调用我的对象上的设置器,并在实际调用我的操作之前体验到 ArgumentException 的抛出。因此,在 DataContract 类中,简单地立即抛出 FaultExceptions 是一种好的设计实践吗?我真的不想将自定义处理程序连接到通道调度程序。
我知道我可以简单地直接抛出 FaultExceptions,但我真的很想将这种事情限制在服务中。如果无法避免,我也可以在支持类中进行,但我更愿意尽可能编写典型代码,与 System.ServiceModel 等耦合不那么紧密。
谢谢!
c# - 自定义错误异常导致客户端出现 wcf 超时
我遵循了关于如何创建自定义故障异常的相同示例(通过创建一个 Exception 类并在 FaultContract 中引用它),但是每次我尝试从服务器抛出异常时,我都会收到来自客户端的连接超时,并且连接最近。奇怪的是,如果我使用默认的 FaultException 类从服务器抛出错误,那么客户端会正确接收它。
这是一个片段:
我像这样初始化服务器:
知道为什么我只有在使用自定义异常时才会出现连接超时?
非常感谢。
c# - Visual Studio 调试器:跳过抛出的 FaultExceptions
我让我的客户端调用我在本地托管的 WCF 服务器,现在我正在调试客户端,所以在服务器上我故意抛出一个 FaultException 以查看客户端将如何处理它。
令人讨厌的部分是调试器在抛出 FaultException 的行上暂停。我怎样才能让它不这样做?我查看了 Visual Studio 的选项(调试),没有看到任何类似于此选项的内容。
wcf - FaultException 和自定义异常 WCF
我有一个关于如何将自定义异常作为 FaultException 发送的问题。当我使用像 ArgumentException 这样的系统异常时它可以工作,但是如果我将它更改为我的自定义异常“TestException”它会失败。当我尝试添加服务参考时,我无法获取服务参考的配置。
作品:
不起作用:
我的“TestException”看起来像这样:
我想我必须在自定义对象上添加一个 DataContract,但我不明白为什么它不能像现在这样工作,因为 ArgumentException 有效。有人可以启发我吗?
感谢帮助 :)
wcf - WCF - 调用无效服务(它仍然是同步的)吗?
基本上,如果我的服务是: public void DoSomethingThatTakesAwhile() { ... }
,对该服务的调用会导致我的应用程序等待方法完成吗?
我问是因为我不希望我的调用者能够继续直到该方法完成,以防该方法需要引发错误异常。
wcf - WCF - 抛出异常或 FaultException?
什么更有效率?抛出异常或抛出错误......我看到的方式是有两种情况:
发生异常并被捕获,您是抛出现有的
Exception
还是创建新的FaultException
并抛出?您自己的逻辑(例如用户名不能为空)需要将错误作为 Exception 或 FaultException 抛出。你选择哪个?
基本上,哪种方式是最佳实践方式?我之所以问,是因为我记得在某处读过有关 WCF 装箱或拆箱异常的信息,它会花费额外的资源等等......所以我也猜想,哪种方式更有效?