繁体   English   中英

ASMX WebService在LIVE服务器上不起作用

[英]ASMX WebService not working on LIVE server

我有一个连接到SQL数据库的简单ASMX Web服务。 我也有随附的webservice测试器应用程序。

我已经在开发机器和自己的Windows 2008服务器上测试了这两个组件。 当我将其部署到客户的服务器上时,无论在服务器上还是在远程调用,webservices服务登录页面都可以正常工作,但是,webservice测试器根本无法在任何位置运行。 抛出异常

System.Net.WebException: The underlying connection was closed: An unexpected error occurred on a receive.
System.IO.IOException: Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host.
System.Net.Sockets.SocketException: An existing connection was forcibly closed by the remote host
at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)
--- End of inner exception stack trace ---
at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)
at System.Net.PooledStream.Read(Byte[] buffer, Int32 offset, Int32 size)
at System.Net.Connection.SyncRead(HttpWebRequest request, Boolean userRetrievedStream, Boolean probeRead)
--- End of inner exception stack trace ---
at System.Net.HttpWebRequest.GetResponse()
at WebServiceTester.frmMain.btnCallWS_Click`

发生错误时,Windows事件查看器,SQL日志或IIS日志中均不显示任何内容。 任何想法可能是什么原因造成的?

您是否要处理大型请求? IIRC正确,默认最大为4MB,您会收到此错误。

在Web.config文件中,为应用程序覆盖maxRequestLength的值。 例如,Web.config中的以下条目允许上传小于或等于1 GB的文件:

<httpRuntime maxRequestLength="1048576" />

IIRC在2.0框架中的绝对最大值为2GB,请不要寻找理由尝试更大的值。

编辑-更多细节

有些防火墙可以区分GET和POST请求,因此可能使用浏览器进行GET,但在POST中被阻止。 如果您想调试网络流量,则可以在Chrome浏览器中复制POST(通过JQuery轻松连接硬编码的帖子),会发现更容易,然后可以使用浏览器检查标题等。或者,您可以使用Fiddler(一个出色的应用程序),请参阅为Fiddler配置.NET应用程序以使用Fiddler调试测试应用程序(假设它是基于堆栈跟踪的Winform应用程序)

终于深入到此。 必须按照以下说明使用Windbgx86分析w3wp.exe崩溃小型转储并从Microsoft和sos.dll加载符号,网址为http://vstepic.blogspot.co.uk/2012/03/how-to-debug-iis -75-application-pool.html (请非常感谢该文档的作者!!!)

唯一的区别是我必须运行“!pe -nested”而不是“!CLRstack”。

这转储了几条都带有相同错误的消息。 服务器上缺少库DLL。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM