c# 应用程序发生超时错误

Time out error occur on c# application

当我post使用[=43=从c#应用程序(Windows服务器)向在另一台服务器(Ubuntu)上运行的PHP页面发送数据时] 方法,

我正在 post 每秒向 PHP 页面发送 至少 1000 个请求

c# 应用程序是一个多线程应用程序,一旦它接收到数据,它就会 post 数据到 php 页

当我连续 posting 数据时,我在 c# 应用程序上收到 posting 超时错误,一旦我重新启动应用程序,它只适用于少数小时。 [注意:由于 php 需要时间来完成任务,因此新请求正在等待,它创建队列并且其等待时间超过 2 分钟并且我收到超时错误]。

我们的服务器都使用了最多 50% 的 CPU 和 RAM 使用率

我检查了 c# 代码和 PHP 代码都工作正常没有问题或错误

我检查了 mysql 配置也很好,但我不知道 apache 配置。

Apache 配置设置为默认配置

我认为可能是我应该配置 apache 或 php 以每秒处理 1000 个请求,我不确切知道因为相同的代码在客户请求之前工作正常 增加了。

在此先感谢好友:)

我认为您可能遇到了 TCP 端口耗尽问题。如果您对另一台服务器进行多次顺序调用,并且没有正确管理 TCP 连接,您的 OS 将不会立即释放它为传出呼叫创建的 TCP 端口连接,并将进一步分配 OS 资源给下一个电话。我认为默认的TCP Port释放时间可以高达2分钟

有关详细信息,请参阅 How do I prevent Socket/Port Exhaustion?。为确保我们需要查看您的 C# 代码,以查看您如何释放在创建 WebClient 调用时使用的资源。

如果是端口耗尽问题,那么您将不得不使用手动创建的 WebClient 实例池来管理对 PHP 服务器的传出呼叫 - 即使释放 WebClient 也可能不会立即释放OS WebClient 使用的资源。

谢谢兄弟的热心回复, 这是 ubuntu 服务器上的配置问题 我没有启用 fast cgi 现在它工作正常