什么时候加载IIS7太多了?

时间:2010-02-13 17:28:36

标签: flex iis-7 windows-server-2008

在我们的客户,候选人使用我们的软件进行测试。如果他们的测试完成,则在服务器上进行一些计算。现在,有时候,200名考生可以同时结束考试,因此可以同时进行200次计算。计算似乎都很好,但有些调用IIS7服务器会收到http错误...

在Flex中,这是错误:

code = "NetConnection.Call.Failed"
description = "HTTP: Status 200"
details = "http://servername/weborb.aspx"
level = "error"

状态200不正常吗?那么这里有什么问题?它甚至是IIS7的问题吗?在200名候选人中,有20人得到了此消息。重新开始测试时,一切运行良好。

我在这个问题上找到了this,但我想知道这是否与我的问题有关(下周我们的客户会做一些压力测试,我已经让他们测试测试是否有解决方法)发表作品)。

有些问题:

  • 当负载太多时,IIS7是否可以阻止某些http调用?
  • 你怎么知道IIS7由于负载太大而阻止了这些呼叫?
  • 是否可以配置这些内容?

从技术上讲,将来我想排队计算,但就目前来说,没有时间也没有预算。

应用程序:Flex,WebORB,ASP.NET,IIS7和SQLSERVER2008。服务器是Windows Server 2008。

4 个答案:

答案 0 :(得分:1)

您可以做很多事情来微调服务器和IIS的性能。

回答你的问题:

通过在IIS管理器中选择您的网站并在右侧的“操作”窗格中选择“高级设置”,可以配置IIS 7中的最大并发连接数限制(以及其他设置)。虽然默认情况下这是高于200的数字。

Looking in the IIS log files,特别是返回状态代码可以指示出错的地方。同样,Windows事件日志也应该告诉您已经发生的任何异常。

答案 1 :(得分:1)

这个问题对我来说似乎很熟悉。我们有一堆flex小部件连接到一个服务器端,有时它也会返回“Netconnection.Call.Failed”。对我们来说,似乎IIS(以及后面的MSSql)无法及时处理所有请求,因此其中一些请求超时。 尝试检查每个请求/所有请求的时间,然后检查超时设置。

答案 2 :(得分:1)

我建议您在IIS实例之间启用负载平衡,或者考虑使用nginx进行负载平衡。

还将200用户的限制设置得更高。由于在IIS中,每个用户连接到您的应用程序都算作1个用户实例,在某些时候您将耗尽200个用户插槽。这是默认设置,您可以将其设置为更高的数字。

同时将时间设置为更高的数字。

如果您尝试调用实时数据(股票,天气,聊天,shoutbox)等一致结果,请查看Comet

答案 3 :(得分:0)

  

从技术上讲,将来我想排队计算,但就目前来说,没有时间也没有预算。

与运行Windows计划任务的批处理脚本放在一起并不难。只是将结果转储到SQL DB中,或者如果你真的很懒,在SQL中插入带有序列化数组的行,然后让它们“回来”查看它们的结果。 “请等一下,你的结果仍在处理中。”

在我看来,你花费的时间比在SO上寻找银弹回答的时间少。