我有一个客户端服务器应用程序。我的服务器是PHP,Mysql和Apache,客户端是使用C#windows Form开发的。我有用于客户端服务器通信的SOAP WSDL Web服务。 最近我发现了一个问题,当我的客户端发送请求时,响应是在很长一段时间后发生的(比如3/4分钟到一些小时),有时候我从来没有得到过响应。我检查了客户端中的所有超时值(httpwebrequest timeout,readwritetimeout)以及服务器(超时,keepalivetimeout)方面,我的最大值是5分钟(对于httpwebrequest readwritetimeout)。所以有人可以告诉我们会出现什么问题吗?为什么需要花费数小时才能得到回复或没有做出任何回应?
答案 0 :(得分:1)
根据我的经验,像这样的问题伴随着Web服务连接被防火墙阻止,或者路由器中的代理。检查这不是问题。
首先应该通过缩小选项来开始定位问题。您是否曾尝试在本地服务器上调用Web服务,看看是否遇到同样的问题 - 如果您没有,那么它很可能会出现连接问题。
要排除客户遇到问题,请尝试使用http://www.soapui.org/之类的内容来调用您的服务器网络服务。
你从哪里调用服务器?您确定从中调用它的设备没有被IP阻止,并且您确定您的Web服务能够从其运行的位置访问其数据库。
为您的服务器API定义的MySQL用户是否可以从服务器的IP进行访问。 MySQL用户也经常被IP阻止。
如果您在本地运行它,您确定您的IIS Express设置/虚拟文件夹没有混乱并且URL解析错误。尝试再次创建虚拟文件夹以排除此问题。即使在本地运行,也要记得检查MySQL用户是否可以从本地IP访问。
以下是我遇到像你这样的问题时经常检查的一些事情。