Web服务需要很长时间才能响应


Webservice taking long time to response

我有一个客户端-服务器应用程序。我的服务器使用PHP、Mysql和Apache,客户端使用C#窗体开发。我有用于客户端-服务器通信的SOAP WSDL Web服务。最近我发现了一个问题,当我的客户发送请求时,响应会在很长时间后(比如3/4分钟到几个小时)出现,有时我永远不会得到响应。我已经检查了客户端(httpwebrequest timeout,readwritetimeout)和服务器(timeout,keepalivetimeout)端的所有超时值,我的最大值是5min(对于httpwebrequest-readwritetimeout来说)。那么,有人能说出问题出在哪里吗?为什么需要几个小时才能得到回应,或者没有得到任何回应?

根据我的经验,像这样的问题是由防火墙或不稳定的代理阻止的web服务连接引起的。检查是否这不是问题所在。

您应该首先通过缩小选项范围来定位问题。你是否尝试过在本地调用服务器上的web服务,看看你是否遇到了同样的问题——如果你没有,那么很可能是连接问题。

要排除客户端出现问题的可能性,请尝试使用http://www.soapui.org/而是调用您的服务器web服务。

你从哪里呼叫服务器?你确定你调用它的设备没有被IP阻止吗?你确定你的web服务能够从运行它的地方访问它的数据库吗。

为您的服务器API定义的MySQL用户是否可以从服务器的IP访问。MySQL用户也经常被IP屏蔽。

如果你在本地运行,你确定你的IIS Express设置/虚拟文件夹没有混乱,URL解析错误吗。请尝试再次创建虚拟文件夹以排除这种情况。即使在本地运行时,也要记住检查MySQL用户是否可以从您的本地IP访问。

当我遇到像你这样的问题时,我通常会检查以下几件事。