2009-05-01 105 views
2

我正在调试接收请求“突发”的ASMX Web服务。即很可能网络服务将在大约1或2秒内收到100个异步请求。每个请求似乎需要大约一秒的时间来处理(这是预期的,我对此性能还可以)。然而重要的是,每个请求都是按顺序处理的,不会发生并行处理。由于Web服务调用的外部组件,我不希望任何并发请求处理。有什么办法可以强制Web服务只处理每个响应?强制asmx web服务一次处理一个请求

我已经看到machine.config中的maxconnection属性,但这似乎只适用于出站连接,因为我希望限制传入连接。

请注意,重构到WCF不是此时的选项。

我们在Win2003上使用IIS6。

+0

@Alex:这些答案有帮助吗?你应该对那些有帮助的人进行补充,以便后来阅读这个问题的人会知道哪些是有用的答案。 – 2009-08-19 22:25:35

+0

不是。我正在寻找IIS6在这种情况下行为(或可能被迫行为)的细节。 在这种情况下,编程解决方案对我来说并不好,而且我无法升级到IIS 7. – Alex 2009-08-20 10:23:26

+0

IIS与此问题无关。除了将请求传递给ASP.NET之外,它不涉及。 – 2009-08-20 18:53:38

回答

0

也许你应该在内部排队请求并逐个处理它们?

这可能会导致客户端轮询结果(如果他们甚至需要它们),但你会得到连续的管道,你想......

0

在IIS7,您可以设置允许连接的限制一个网站。你可以使用IIS7吗?

0

我在过去所做的就是简单地将锁语句放在对我正在使用的外部资源的任何访问中。就我而言,它是一段声称是线程安全的非托管代码,但实际上,如果从一个以上的线程访问C运行时库堆,它实际上是垃圾。