【问题标题】:Using Parallel.ForEach in WCF service is returning TimeOut Error在 WCF 服务中使用 Parallel.ForEach 返回超时错误
【发布时间】:2015-08-20 12:24:16
【问题描述】:

我们有一个从 Windows 服务调用的 wcf 服务(比如说 WCF 服务 A)。

在 WCF 服务 A 中,我们使用 Parallel.ForEach 创建 5 个线程来执行相同的方法(例如方法 A)

此方法 A 调用 WCF 服务 B 中的方法 B,方法 B 调用 WCF 服务 C 中的方法 C,方法 C 调用 WCF 服务 D 中的方法 D。

现在的问题是,在 WCF 服务 D 中对方法 D 的调用在 WCF 服务 C 的方法 C 中超时。我以某种方式删除了方法 C 中对方法 D 的调用,但现在对方法 C 的调用在方法 B 中超时WCF 服务 B。

ServiceThrottling 受到限制,在 DB 中未发现死锁。

当传递给 Parallel.ForEach 的列表只有一项时,同样的代码也可以工作。

【问题讨论】:

  • 什么操作耗时过长导致超时?慢服务在做什么工作?由于您在多个连接上查询数据库,SQL Server 无法检测到死锁。

标签: c# .net wcf


【解决方案1】:

这里的问题是操作系统,我在 Windows 7 上运行它,它超过了 IIS 中设置的线程限制。当我将此移至 Windows Server 2008 时,未观察到超时问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多