问题标签 [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.
c# - 无法捕获 FaultException从客户端应用程序正确
我用 FaultExceptions 定义了一个 WCF 服务,但客户端没有正确捕获异常。
例外情况的合同是:
操作
在操作中我故意引入了一个错误:
然后在客户端应用程序中,我抓住了
但是第二个捕获是捕获错误,所以我收到了这条消息(虽然正确的形式不正确)
我该怎么做才能使强类型异常捕获错误?
PS:有一个类似的帖子,但我不明白
c# - 类型不能是 ISerializable 并且具有 DataContractAttribute 属性
我得到一个Type 'WcfServiceLibrary1.GetDataErrorException' cannot be ISerializable and have DataContractAttribute attribute.
尝试在 WCF 服务中添加自定义异常时。
为什么这不起作用?我想我想念一些简单的东西......
c# - WCF FaultException IErrorHandler - 不返回客户端并导致超时异常
我正在尝试在使用 iis 和 net.tcp 的 WCF 服务中实现 IErrorHandler。
我设置了一个在服务器中抛出 DivideByZeroException 的场景。IErrorHandler 正在按预期触发。
FaultException 没有返回给客户端,我收到超时异常。我在事件日志中也找不到任何信息/异常。
这是演示代码。 http://www.fileswap.com/dl/gQFlVsZK7M/(请点击慢速下载图片)
编辑 1(从存档中添加代码供所有人查看):
服务合约:
服务实施:
IErrorHandler 实现:
c# - 未在 WCF 客户端引发 FaultException。相反,我得到了通信异常
我有一个简单的 WCF 服务器,我在其中抛出FaultException<InvalidOperationException>
,但在客户端我只收到以下错误的通信异常。
套接字连接被中止。这可能是由于处理您的消息时出错或远程主机超出接收超时,或者是潜在的网络资源问题造成的。本地套接字超时为“00:00:59.8080000”。
请参阅下面的代码以获取我的代码,请帮助并让我知道是否缺少某些内容。
服务
服务实现代码
客户端代码。
wcf - 在 WCF 中处理未经授权的请求?
我们有一个 WCF 服务,使用 webhttp 绑定。用户通过身份验证,然后调用一个方法。在该方法中,我们会检查与用户相关的各种设置以及特定于请求的一些信息,然后才能知道用户是否有权拨打电话。
由于这是 WCF,我认为我应该抛出某种 FaultException,但尚不清楚是否有最佳实践。
我的想法是,一旦我知道我将抛出什么异常,我会添加一个 IErrorHandler ,它将标头正确设置为 403。
两个问题:1)对于未经授权的请求是否有标准的 FaultException?即相当于403的http状态码?2)我应该能够处理我将抛出的异常并将响应代码更改为 403 吗?我可以通过自定义错误消息吗?我已经看到一些帖子使用捕获中的操作上下文设置标头不会传播到客户端。
理想情况下,我可以使用附加信息将状态设置为 403,例如“您必须是管理员组的成员才能添加用户”
c# - 回调调用时服务器未处理 FaultException
我有一种情况,服务器从客户端请求信息。
回调声明:
回调实现:
问题是,当我调用该方法并FaultException<TDetail>
在客户端抛出一个异常时,异常处理不正确。我得到了一个CommunicationException
。如下图所示。
我尝试使用一些 WCF 日志记录功能来查看是否可以隔离问题,但是一旦服务器收到响应就会引发异常。
什么可能导致这种行为?我的代码不应该进入catch (FaultException<FaultBase> e)
区块吗?
首先,我怎样才能找到问题?
编辑:
我刚刚发现异常被正确捕获,只要回调方法返回 void。这可能与我的回调设置有关。
c# - 当消息大小很大时,WCF 上的 FaultedException
我有一个 WCF 服务和一个简单的 aspx 页面,它从一个控制台应用程序获取消息并将其发送到另一个控制台应用程序。当消息(xml 格式)长度在 6000000 左右时,它工作正常,但是当消息大小加倍时,它停止抛出以下异常
“通信对象 System.ServiceModel.Channels.ServiceChannel 无法用于通信,因为它处于故障状态。”
我已经跟踪它并且我的发件人应用程序发送了消息,我的 .aspx 页面得到了它,将它发送到我的接收者应用程序时抛出异常。这是代码。
我尝试了一堆配置设置,但都没有解决问题。可能是什么原因?
提前致谢。
wcf - 使用二进制文件时丢失 WCF FaultException 详细信息
我有一个具有以下自定义绑定的 WCF 服务:
(客户端当然有匹配这个绑定的配置)。问题是客户端没有收到通用的FaultException,例如客户端没有收到“T”,如果我跟踪调用,我可以验证它。但是,如果我使用 Soap 1.2 将 binaryMessageEncoding 替换为 textMessageEncoding,则所有故障异常都会包含故障详细信息。
我在网上搜索并没有找到任何声称 HTTP 上的二进制消息编码与通用 WCF 错误异常不兼容的信息。此外,我似乎无法控制大部分二进制消息编码 - 例如,我无法在配置 SOAP 消息版本中设置(WCF 不支持二进制编码)。我想知道是否支持这种情况。
c# - 在客户端获取故障异常
我是 WCF 新手,正在尝试使用WebHttpBinding
绑定构建演示 WCF 项目。
这些项目工作正常,但我坚持错误异常的概念。下面是我用来生成故障异常的代码,但在客户端我得到的是(400) Bad Request错误并且 InnerException 为空。我哪里错了?
c# - WCF 客户端无法看到自定义故障异常
正如您可能从问题标题中看出的那样,我是 WCF 的新手。我已经实现了这个 Web 服务,其中一种方法抛出了一个自定义的 FaultException。
然后,我在 MyMethod 的实现中抛出适当的异常
到目前为止,一切都很好。现在,我创建了一个使用此 Web 服务的简单 ASP.NET 网站。我在该网站中为 MyClass.svc Web 服务添加了一个 WebReference。问题是当我试图捕获异常时:catch(FaultException ex) { } 它无法识别 CustomError。我已经完成了以下故障排除:1.确保我更新了 wsdl(做了很多次,尝试更改其他内容,一切都反映在客户端) 2.尝试了 BasicHttpBinding 以及 wsHttpBinding(不确定这是否有区别) 3. 用谷歌搜索了很多,并虔诚地遵循了 MSDN 的示例代码。
还是没有运气!我错过了什么吗?任何建议将不胜感激。