SOAP响应大小
我正在尝试使用已使用Soap :: Lite(Perl)创建的Web服务。我正在使用C#使用该服务。大多数情况下,它工作正常。我可以抓住回应,并在我认为合适的时候解析它们。但是,我有一些不起作用的呼叫。SOAP响应大小
我得到以下信息:
这是我的理解是,服务器可能切断对 无论什么原因的连接“的现有连接被强行关闭远程主机”。我试图找到原因。我认为这是由于 的一些反应的细节的大小。我有一个特别的问题,那就是 总是会失败,当我从SOAP响应中查看XML时,总是会将 截断为完全相同的位置,就像它到达该位置并已达到 的限制。
所以,我所做的一切,我能想到的在客户端的大小,如改变 MaxReceivedMessageSize和超时设置等我发现我可以 增加超时和执行时间随后增加,但诊断日志记录我总是停在同一个地方。
我也写过一个类,允许我查看原始XML并再次停止在同一个地方。
我在想也许服务器上的某些东西需要更改,但是我尝试过的所有东西都不起作用。该服务托管在运行IIS 6的Web服务器上。
有人对我在客户端和/或服务器端可以做什么有什么建议吗?
感谢
编辑
我要指出,没有WSDL文件,我使用。我正在使用的应用程序是我使用SOAP :: Lite的唯一时间,并且从我所能告诉的它不会生成WSDL。
@ e36M3 - 感谢您的建议。我从来没有听说过soapUI。我安装了它并试用了它,我可以看到它的许多用途,所以我将在未来记住它。不幸的是,它似乎是围绕着WSDL测试而构建的,我无法看到如何在没有提供WSDL的情况下对其进行测试,这对于这种特殊情况是一个问题。
以下是我的跟踪日志中的一些相关数据。它从无效的xml结束并以错误信息结束的地方开始。
System.Net详细:0:000031E0;/map>。数据
System.Net详细:0:000031E0>。 System.Net详细:0:[5772] 000031E0 ESP1:MRWebServic
System.Net详细:0:[5772] 000031E0 es__getIssueDeta
System.Net详细:0:[5772] 000031E0 ilsResponse> System.Net详细: 0:[0072] System.Net详细信息:0:[0507] 000031E0 AP-ENV:Envelope>
System.Net详细信息:0:[5772]退出ConnectStream#15566556 :: Read( ) - > 12880#12880 < 系统。Net Verbose:0:[5772] ConnectStream#15566556 :: Read()
System.Net.Sockets详细:0:[5772]套接字#20784002 :: Receive()
System.Net.Sockets错误:0: 5772]套接字中的异常#20784002 ::接收 - 连接尝试失败,因为连接方在 一段时间后未正确响应,或者由于连接的主机未能连接而导致连接失败 响应
System.Net.Sockets详细信息:0:[5772]退出套接字#20784002 ::接收() - > 0#0
System.Net.Sockets详细:0:[5772]套接字#20784002 ::处置()
System.Net错误: 0:[5772] HttpWebRequest中的异常#63722612 :: - 底层连接已关闭:未指定d接收发生错误。 System.Net详细:0:[5772] ConnectStream#15566556 ::关闭()
System.Net详细:0:[5772]退出ConnectStream#15566556 ::关闭()
在为你的绑定app.exe.config中的web服务应该是最大接收邮件大小的设置。默认值是maxReceivedMessageSize =“65536”。增加值应允许客户端应用程序接收所有数据。
确保这些特定的调用不会在服务器端崩溃。 – Adi 2011-05-13 13:34:04
你是否尝试过从soapUI或类似的执行呼叫?这将帮助你排除.NET作为失败的原因。 – e36M3 2011-05-13 13:50:43