1

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

4

1 回答 1

1

根据我的经验,此类问题来自于 Web 服务连接被防火墙阻止,或者是一个不稳定的代理。检查这不是问题。

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

要排除客户端有问题,请尝试使用http://www.soapui.org/之类的东西来调用您的服务器 Web 服务。

你从哪里调用服务器?您确定您调用它的设备没有被 IP 阻止,并且您确定您的 Web 服务能够从运行它的位置访问其数据库。

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

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

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

于 2012-08-25T13:25:57.620 回答