我正在调试接收“突发”请求的ASMX Web服务。即,Web服务很可能在大约1或2秒内收到100个异步请求。每个请求似乎需要大约一秒的时间来处理(这是预期的,我对这个性能没有问题)。然而重要的是,每个请求都是按顺序处理的,并且不会发生并行处理。由于Web服务调用的外部组件,我不希望任何并发请求处理。有什么办法可以强制Web服务只按顺序处理每个响应吗?
我在machine.config中看到了maxconnection属性,但这似乎只适用于出站连接,我希望限制传入连接。
请注意,目前无法重构为WCF。
我们在Win2003上使用IIS6。
答案 0 :(得分:0)
也许您应该在内部对请求进行排队并逐个处理它们?
它可能导致客户端轮询结果(如果他们甚至需要它们),但是你会得到你想要的顺序管道......
答案 1 :(得分:0)
在IIS7中,您可以设置允许访问网站的连接限制。你能用IIS7吗?
答案 2 :(得分:0)
我过去所做的只是简单地对我正在使用的外部资源的任何访问进行锁定声明。在我的例子中,它是一段声称是线程安全的非托管代码,但实际上如果一次从多个线程访问,它会丢弃C运行时库堆。