如何在几秒钟内处理一堆请求的asp.net Web服务?

时间:2012-03-05 17:50:02

标签: c# asp.net web-services asmx biztalk

我开发了一个asp.net Web服务,并部署在IIS 7.5和Windows 2008 R2 64位上。 所有请求都来自Biztalk到这个Web服务。如果Biztalk在时间上发送了几个请求,那么这个Web服务很有用。但是,如果BizTalk在几秒钟内发送了数千条记录,我的Web服务就无法处理,并将Request TimeOuts错误发送回BizTalk。

我不明白如何处理这种情况。大师请给我一些想法。

2 个答案:

答案 0 :(得分:1)

您需要弄清楚三个方面。

首先是如何提高Web服务本身的吞吐量。剖析它,看看你可以修剪什么。当一个人进行多个数据库调用时,它是否会进行多次调用?它是在写一个缓慢的硬盘驱动器(修复:用更快的mechansim替换驱动器)?...基本上尝试找出为什么你的服务只处理有限数量的同时调用。这可能涉及从基于XML的服务转向基于json或其他有限格式的服务。它可能涉及摆脱各种脚手架废话(如asmx,wcf等),转而使用简单的基于REST的通用处理程序。无论如何,您必须对服务进行分析,以找出它的关键点。

接下来看看您是否可以设置其他计算机来托管Web服务并建立负载平衡。这可能是最好的方式。

第三,(无论上述情况如何),您需要确定安全流量级别是什么,并让Biztalk限制它自己的连接。如果在做完所有事情之后你可以增加吞吐量,你会发现同时发出200个请求,然后将Biztalk限制为最多同时发送200个。

答案 1 :(得分:0)

machine.config中还有配置设置,允许您使用其他线程加速asp Web服务。有几篇文章可以根据服务器上的CPU数量来确定最佳设置。如果你需要限制btssvc.config中的BizTalk,我相信。