【问题标题】:Time out error occur on c# applicationc#应用程序发生超时错误
【发布时间】:2016-12-10 13:22:59
【问题描述】:

当我使用 POST 方法将数据从 c# 应用程序(Windows 服务器)发布到在另一台服务器(Ubuntu)上运行的 PHP 页面时,

我每秒向 PHP 页面发布至少 1000 个请求

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

当我不断发布数据时,我在 c# 应用程序上收到 发布超时错误,一旦我重新启动应用程序,它就会工作几个小时。 [注意:由于 php 需要时间来完成任务,所以新的请求正在等待,它创建队列并且它的等待时间超过了 2 分钟并且我得到了超时错误]。

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

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

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

Apache 配置被设置为默认值

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

提前谢谢哥们:)

【问题讨论】:

    标签: c# php apache windows-server-2012 ubuntu-server


    【解决方案1】:

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

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

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

    【讨论】:

    • 这是 ubuntu 配置的问题,我没有启用快速 cgi/fpm,现在它可以正常工作了。
    • 如果您同时发布了您遇到的问题以及您如何解决它,这将很有帮助 - 这意味着搜索与您的原始问题类似的帖子的人会找出导致您的问题的原因。只是告诉我“我修复了它”而不实际给出解决方案对将来发现同样问题的人没有帮助。 SO 资源既是“帮助热线”又是问题/解决方案资源。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-07-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多