c#应用程序

时间:2016-12-10 13:23:00

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

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

我每秒向PHP页面发送最低1000个请求

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

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

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

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

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

Apache配置设置为默认值

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

提前感谢好友:)

2 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分:0)

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