- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 WCF 客户端来使用非 WCF SOAP 1.2 Web 服务。当收到如下所示的 SOAP 错误时,我收到的是 ProtocolException 而不是 FaultException。通信绑定(bind)没有问题,请求正在成功处理。但我无法访问我的 WCF 客户端中的错误错误。有任何想法吗?
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://www.w3.org/2003/05/soap-envelope" xmlns:SOAP-ENC="http://www.w3.org/2003/05/soap-encoding" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:c14n="http://www.w3.org/2001/10/xml-exc-c14n#" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsa5="http://www.w3.org/2005/08/addressing" xmlns:wsr="http://docs.oasis-open.org/wsrf/r-2" xmlns:xmime5="http://www.w3.org/2005/05/xmlmime" xmlns:xop="http://www.w3.org/2004/08/xop/include" xmlns:tt="http://www.onvif.org/ver10/schema" xmlns:wsbf="http://docs.oasis-open.org/wsrf/bf-2" xmlns:wstop="http://docs.oasis-open.org/wsn/t-1" xmlns:ns10="http://www.onvif.org/ver10/events/wsdl/PausableSubscriptionManagerBinding" xmlns:ns3="http://www.onvif.org/ver10/events/wsdl/PullPointSubscriptionBinding" xmlns:ns4="http://www.onvif.org/ver10/events/wsdl/EventBinding" xmlns:tev="http://www.onvif.org/ver10/events/wsdl" xmlns:ns5="http://www.onvif.org/ver10/events/wsdl/SubscriptionManagerBinding" xmlns:ns6="http://www.onvif.org/ver10/events/wsdl/NotificationProducerBinding" xmlns:ns7="http://www.onvif.org/ver10/events/wsdl/NotificationConsumerBinding" xmlns:ns8="http://www.onvif.org/ver10/events/wsdl/PullPointBinding" xmlns:ns9="http://www.onvif.org/ver10/events/wsdl/CreatePullPointBinding" xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2" xmlns:tds="http://www.onvif.org/ver10/device/wsdl" xmlns:ter="http://www.onvif.org/ver10/error" xmlns:timg="http://www.onvif.org/ver20/imaging/wsdl" xmlns:tptz="http://www.onvif.org/ver20/ptz/wsdl" xmlns:trt="http://www.onvif.org/ver10/media/wsdl">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<SOAP-ENV:Fault>
<SOAP-ENV:Code>
<SOAP-ENV:Value>SOAP-ENV:Sender</SOAP-ENV:Value>
<SOAP-ENV:Subcode>
<SOAP-ENV:Value>ter:InvalidArgVal</SOAP-ENV:Value>
<SOAP-ENV:Subcode>
<SOAP-ENV:Value>ter:NoSource</SOAP-ENV:Value>
</SOAP-ENV:Subcode>
</SOAP-ENV:Subcode>
</SOAP-ENV:Code>
<SOAP-ENV:Reason>
<SOAP-ENV:Text xml:lang="en">Not exist</SOAP-ENV:Text>
</SOAP-ENV:Reason>
<SOAP-ENV:Detail>
<SOAP-ENV:Text xml:lang="en">The requested VideoSource does not exist.</SOAP-ENV:Text>
</SOAP-ENV:Detail>
</SOAP-ENV:Fault>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
StackTrace
"Server stack trace:
at System.ServiceModel.Channels.HttpChannelUtilities.ValidateRequestReplyResponse(HttpWebRequest request, HttpWebResponse response, HttpChannelFactory factory, WebException responseException, ChannelBinding channelBinding)
at System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan timeout)
at System.ServiceModel.Channels.RequestChannel.Request(Message message, TimeSpan timeout)
at System.ServiceModel.Dispatcher.RequestChannelBinder.Request(Message message, TimeSpan timeout)
at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs)
at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)
Exception rethrown at [0]:
at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
at OnvifProxy.ImagingPort.SetImagingSettings(String VideoSourceToken, ImagingSettings20 ImagingSettings, Boolean ForcePersistence)
at OnvifProxy.ImagingPortClient.SetImagingSettings(String VideoSourceToken, ImagingSettings20 ImagingSettings, Boolean ForcePersistence) in D:\..\Proxies\OvifServices.cs:line 19005
at Integral.Common.IPCameras.ONVIF.Services.ImagingService.SetImageSettings(String pVideoSourceToken, ImagingSettings20 pImageSettings) in D:\..\Services\ImagingService.cs:line 375" string
最佳答案
我建议使用 Fiddler拦截原始响应。在这些情况下(互操作),最好完全绕过 WCF,并在响应消息“在线”到达时读取它。试图通过 WCF 调试非 WCF 故障或反序列化错误只会让你头疼。 =)
大多数情况下,查看原始响应会像拇指疼痛一样指出问题。
关于wcf - 为什么 WCF 客户端没有将 SOAP 错误作为 FaultException 接收?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5022675/
我已经阅读了关于此的所有内容,但也许我遗漏了一些东西(好吧,我肯定遗漏了一些东西,否则它已经可以工作了) 我在我的服务器业务层中抛出了一些异常错误: public class RfcException
好的,我知道我在这里遗漏了一些东西。我有以下操作合约: public double DivideByZero(int x, int y) { if (y =
什么更有效?抛出异常或抛出错误……我认为有两种情况: 发生异常并被捕获,是否抛出现有的 Exception或新建 FaultException然后扔那个? 您自己的逻辑(例如用户名不能为空)需要将错误
我有一个 WCF 服务,如果出现问题,它会抛出一个通用的 FaultException。 我不知道为什么,有时客户端会捕获非泛型 FaultException 而不是泛型异常。 有谁知道,问题是什么?
我们目前有一种在测试页面中调用网络服务的机制。但是,我正在尝试查看 WCF 服务的更好做法并使用 FaultException。 所以有我们服务抛出FaultException的情况,我想将该故障序列
我发布了一个question关于使用消息与故障异常在服务之间传达业务规则。 我的印象是通过网络抛出这个异常会带来开销,但考虑到它只是一条被序列化和反序列化的消息,它们实际上是一样的。 但这让我开始考虑
我有一个关于如何将自定义异常作为FaultException 发送的问题。当我使用像 ArgumentException 这样的系统异常时它可以工作,但是如果我将其更改为自定义异常“TestExcep
我有一个非常简单的 3 层项目。有一个与数据存储交互的 DAL(数据访问层)WCF 服务; BLL(业务逻辑层)WCF 服务作为 DAL 服务和客户端 UI 以及 Windows 窗体客户端层之间的中
我正在尝试在 WCF 服务中实现异常处理。我希望将此异常抛出给客户端,以便记录和处理它。 我不知道我写的代码是对还是错。这只会让我“faultexception 未被用户代码处理”我应该如何解决才能处
对于以下异常,没有在异常窗口中指定原因(->查看详细信息): System.ServiceModel.FaultException The creator of this fault did not
在我的 WCF 服务上,我有几个自定义故障类型。一个名为 BaseFault 的抽象类型及其两个实现,分别称为 TypeOneFault 和 TypeTwoFault 我是这样在服务端抛出异常的 pu
单层应用程序可以通过以下方式区分异常: Exception ex; if (ex is System.DirectoryServices.AccountManagement.PasswordExcep
我正在使用 C# 从 .NET 4.5 调用 SOAP Web 服务,但我不明白如何捕捉未类型化 FaultException 的详细信息. 如果 Web 服务遇到错误,我会收到如下消息:
我在调用服务 API 时捕获了 FaultException,例如 catch(FaultException e) { // How do I get the MyCustomEx objec
我有一些预定义的 WCF 服务 FaultContract属性。当FaultException抛出异常,它们会发送 StackTrace、Source 和其他可能未保存的信息。 是否可以只返回: 详细
我为每个帖子都提供了一个pingback列表。看起来像这样: def send_trackback #do stuff begin Pingback::Client.new.ping(
我正在了解 WCF 服务上下文中的 FaultException 和 CLR 异常,但有些内容尚不清楚。在“Learning WCF”一书中,它说当服务抛出一个正常的 CLR 异常时,它会被服务模型捕
在更新我的 WCF 客户端的服务引用时(只需在 Visual Studio 2008 中单击“更新服务引用”),出现以下错误:System.ServiceModel.FaultException: T
我正在尝试在带有 .net 4.5 的 VS 2012 中使用带有 Telerik OpenAccess 的 WCF Plain 服务。 我尝试了 telerik 开发人员手册并创建了服务和客户端。
我只是在检查 WCF FaultContract。根据它的定义,它用于向客户端发送异常详细信息。但是我们可以只使用 FaultException 来做到这一点。那么为什么我们需要 FaultContr
我是一名优秀的程序员,十分优秀!