从 .NET 使用 SAP Web 服务会引发异常 ServiceModel.FaultException

Posted

技术标签:

【中文标题】从 .NET 使用 SAP Web 服务会引发异常 ServiceModel.FaultException【英文标题】:Consuming SAP web-service from .NET throws exception ServiceModel.FaultException 【发布时间】:2017-03-03 18:27:19 【问题描述】:

我引用了 WSDL 文件并向 SAP Web 服务发出请求并得到以下异常

System.ServiceModel.FaultException:服务器错误服务器堆栈跟踪:在 System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime operation, ProxyRpc& rpc)

在 System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)

在 System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message) 在 System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation) 在 [0] 处重新抛出异常:

在 System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)

在 System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 类型)

我可以通过 SOAPUI 中的 WSDL 使用 Web 服务。

我还设置了以下绑定属性。

 var binding = new BasicHttpsBinding
        
            SendTimeout = TimeSpan.MaxValue,
            MaxReceivedMessageSize = Int32.MaxValue,
            CloseTimeout = TimeSpan.MaxValue,
            OpenTimeout = TimeSpan.MaxValue,
            ReceiveTimeout = TimeSpan.MaxValue,
            MaxBufferPoolSize = Int64.MaxValue
            
        ;

我跟踪来自 fiddler 的 Visual Studio 请求,并且可以从 SoapUI 执行相同的请求,但是在尝试通过 Visual Studio 消费时,发生了异常。

【问题讨论】:

【参考方案1】:

其实我是从零开始,解决了问题。

响应超过 8mb,请求耗时超过 100 秒。

我在配置文件中做了如下修改,问题就解决了。

    <binding receiveTimeout="00:20:00" sendTimeout="00:20:00"
openTimeout="00:05:00"  closeTimeout="00:05:00"
maxReceivedMessageSize="20000000"  maxBufferSize="20000000" maxBufferPoolSize="20000000" >
<readerQuotas maxDepth="20000000"
                            maxStringContentLength="20000000"
                            maxArrayLength="20000000"
                            maxBytesPerRead="20000000"
                            maxNameTableCharCount="20000000" />
   ....

【讨论】:

以上是关于从 .NET 使用 SAP Web 服务会引发异常 ServiceModel.FaultException的主要内容,如果未能解决你的问题,请参考以下文章

扩展从 JQuery 调用 Web 服务时从 ASP.NET 引发的异常

“SAP.Middleware.Connector.RfcDestinationManager”的类型初始值设定项引发异常

从VB.NET Web表单调用我的第一个WCF服务中的函数会引发错误。函数调用缺少WCF函数中的参数

某些时间戳值引发系统内存不足异常

升级到 .NET 6 时,Web 项目引发运行时异常

PayPal .NET SDK - new Payment() - 引发 NullReference 异常