c# - SOAP 响应大小

标签 c# xml perl soap soaplite

我正在尝试使用使用 Soap::Lite (Perl) 创建的 Web 服务。我正在使用 C# 使用该服务。在大多数情况下,它工作正常。我可以抓取响应并按照我认为合适的方式解析它们。但是,我有一些电话打不通。

我收到以下消息: “现有连接被远程主机强行关闭”

据我了解,服务器可能正在切断连接 不管什么原因。我正在努力寻找这个原因。我认为这是由于 某些响应的详细信息的大小。我有一个特别的会 总是失败,当我从 SOAP 响应中查看 XML 时,它总是 在完全相同的位置被截断,就好像它到达那个位置并且达到了一个大小 限制。

所以,我已经做了我能想到的关于客户端大小的所有事情,比如改变 MaxReceivedMessageSize 和超时设置等。我注意到我可以 增加超时和执行时间随后增加,但我正在做的诊断日志记录总是在同一个地方停止。

我还编写了一个允许我查看原始 XML 的类,它再次停在同一位置。

我在想也许服务器上的某些东西需要改变,但我试过的一切都不起作用。该服务托管在运行 IIS 6 的 Web 服务器上。

有人对我在客户端和/或服务器端可以做什么有什么建议吗?

谢谢

编辑


我应该注意到没有可供我使用的 WSDL 文件。我正在使用的应用程序是我唯一一次使用 SOAP::Lite,据我所知,它不会生成 WSDL。

@e36M3 - 感谢您的建议。我从未听说过 soapUI。我安装并试用了它,发现它有很多用途,因此我会在未来牢记它。不幸的是,它似乎是围绕 WSDL 测试构建的,我看不出如何在不提供 WSDL 的情况下使用它进行测试,鉴于这种特殊情况,这是一个问题。


这是我的跟踪记录中的一些相关数据。它以无效 xml 结束的位置开始,以错误信息结束。

System.Net Verbose: 0 : [5772] 000031E0 ;/map>. System.Net 详细:0:[5772] 000031E0 >。 System.Net 详细:0:[5772] 000031E0 esp1:MRWebServic
System.Net 详细:0:[5772] 000031E0 es__getIssueDeta
System.Net 详细:0:[5772] 000031E0 ilsResponse> System.Net 详细:0:[5772] 000031E0 AP-ENV:正文> System.Net 详细:0:[5772] 000031E0 AP-ENV:信封>
System.Net 详细:0:[5772] 退出 ConnectStream#15566556::Read() -> 12880#12880< br/> System.Net 详细:0:[5772] ConnectStream#15566556::Read()
System.Net.Sockets 详细:0:[5772] Socket#20784002::Receive()
System.Net.Sockets 错误:0:[5772] Socket#20784002::Receive 中的异常 - 连接尝试失败,因为连接方在 一段时间,或建立的连接失败,因为连接的主机未能 回应
System.Net.Sockets 详细:0:[5772] 退出套接字#20784002::Receive() -> 0#0
System.Net.Sockets 详细:0:[5772] Socket#20784002::Dispose()
System.Net 错误:0:[5772] HttpWebRequest 中的异常#63722612::- 基础连接已关闭:接收时发生意外错误。 System.Net 详细:0:[5772] ConnectStream#15566556::Close()
System.Net 详细:0:[5772] 退出 ConnectStream#15566556::Close()

最佳答案

在您的 web 服务绑定(bind)中,app.exe.config 应该是最大接收消息大小的设置。默认值为 maxReceivedMessageSize="65536"。增加该值应该允许客户端应用程序接收所有数据。

关于c# - SOAP 响应大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5992639/

相关文章:

c# - 编译错误 : "The modifier ' public' is not valid for this item"while explicitly implementing the interface

java - 序言中不允许引用

linux - 通过电子邮件发送大量文本 : "Argument list too long"

ruby - 使用 Nokogiri::XML::Builder 添加元素

perl - 从 Perl 字符串中删除特殊字符

perl - 查找未使用的 "use' d"Perl 模块

c# - json.net;序列化 Entity Framework 对象(循环引用错误)

c# - 替代在 IAsyncEnumerable 中产生

c# - 仅使用 async/await 时是否存在竞争条件?

java - 在 mac os 上配置 hadoop namenode 时出现 yarn-site.xml 错误