2012-03-05 44 views
0

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

我不理解如何处理这种情况。大师请给我想法。

+1

我想BizTalk应该有某种配置的限制来帮助你及时传播请求。 – Sly 2012-03-05 17:52:52

+0

这似乎有点含糊。您是否希望加速Web服务(并因此能够快速处理多少请求),还是希望减慢/扼制BizTalk发送的请求数量(@Sly提到)? – jadarnel27 2012-03-05 17:59:28

+0

我认为正确的方法是减慢从BizTalk发送的请求数量 – Sly 2012-03-05 18:00:32

回答

1

有三个方面需要弄清楚。

第一个是如何提高你的web服务本身的吞吐量。对其进行配置并查看可以修剪的内容。当一个人会做多个数据库调用吗?它是否将内容写入缓慢的硬盘(修复:用更快的机器更换驱动器)?本质上是试着弄清楚为什么你的服务只处理有限数量的同时调用。这可能涉及从基于XML的服务转移到基于json或其他有限格式的服务。它可能涉及摆脱各种脚手架垃圾(如asmx,wcf等),以支持基于REST的简单通用处理程序。无论如何,你将不得不介绍服务,以找出它的关键所在。

接下来看看您是否可以设置额外的机器来托管Web服务并建立负载平衡。这可能是最好的方法。

第三,(无论上述发现如何),您需要确定安全流量级别,并让Biztalk节制它自己的连接。如果在做了所有可以提高吞吐量的事情之后,您会发现有200个同时发生的请求,然后将Biztalk调节为仅发送200个同时发送请求。

0

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

+0

添加线程通常不会加速Web服务。 – 2012-03-05 20:09:13

+0

@JohnSaunders:有时,在ASP.Net应用程序池中添加其他Web应用程序可以提高吞吐量。这真的取决于什么,确切地说,阻塞点是。 – NotMe 2012-03-05 20:14:55

+0

@ChrisLively:正是我的观点:先找出问题所在,然后解决问题。 – 2012-03-05 20:18:48