2

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

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

请注意,此时重构为 WCF 不是一种选择。

我们在 Win2003 上使用 IIS6。

4

3 回答 3

1

我过去所做的只是简单地在对我正在使用的外部资源的任何访问周围放置一个锁定语句。在我的例子中,它是一段声称是线程安全的非托管代码,但实际上如果一次从多个线程访问,它会破坏 C 运行时库堆。

于 2009-06-01T13:09:14.703 回答
0

也许您应该在内部将请求排队并一一处理?

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

于 2009-05-01T07:29:59.360 回答
0

在 IIS7 中,您可以设置允许到网站的连接限制。你能用IIS7吗?

于 2009-05-01T07:36:55.083 回答