我开发了一个asp.net Web服务,并部署在IIS 7.5和Windows 2008 R2 64位上。
所有请求都来自Biztalk到这个Web服务。如果Biztalk在时间上发送了几个请求,那么这个Web服务很有用。但是,如果BizTalk在几秒钟内发送了数千条记录,我的Web服务就无法处理,并将Request TimeOuts
错误发送回BizTalk。
我不明白如何处理这种情况。大师请给我一些想法。
答案 0 :(得分:1)
您需要弄清楚三个方面。
首先是如何提高Web服务本身的吞吐量。剖析它,看看你可以修剪什么。当一个人进行多个数据库调用时,它是否会进行多次调用?它是在写一个缓慢的硬盘驱动器(修复:用更快的mechansim替换驱动器)?...基本上尝试找出为什么你的服务只处理有限数量的同时调用。这可能涉及从基于XML的服务转向基于json或其他有限格式的服务。它可能涉及摆脱各种脚手架废话(如asmx,wcf等),转而使用简单的基于REST的通用处理程序。无论如何,您必须对服务进行分析,以找出它的关键点。
接下来看看您是否可以设置其他计算机来托管Web服务并建立负载平衡。这可能是最好的方式。
第三,(无论上述情况如何),您需要确定安全流量级别是什么,并让Biztalk限制它自己的连接。如果在做完所有事情之后你可以增加吞吐量,你会发现同时发出200个请求,然后将Biztalk限制为最多同时发送200个。
答案 1 :(得分:0)
machine.config中还有配置设置,允许您使用其他线程加速asp Web服务。有几篇文章可以根据服务器上的CPU数量来确定最佳设置。如果你需要限制btssvc.config中的BizTalk,我相信。