我正在从一个同时使用多个线程的SilverLight应用程序进行10个并发异步WCF服务调用。
WCF服务将花费30秒来处理来自客户端的每个调用。
当第三个线程调用WCF服务器时,它会给出超时异常。当我将发送超时配置更改为10分钟时,它对所有线程都工作得很好。
所以我的困惑是,WCF通常会考虑所有并发调用的超时配置。请注意,我使用的是基本的HTTP绑定。
发布于 2016-09-07 22:19:13
听起来好像只有一个服务实例在处理您的呼叫。如果(正如您在评论中所说的)将每个会话的实例化和并发性设置为single,则会发生这种情况。
这些调用被视为属于同一客户端会话,因此它们被排队,并由单个线程、单个服务实例依次处理。因此,任何在客户端超时之前未被分派的请求都将失败。
您应该将实例化设置为per-call,这意味着您将为每个请求获取一个服务实例,因此所有10个调用都应该被并发处理。
请参阅https://msdn.microsoft.com/en-us/library/ms731193(v=vs.110).aspx
https://stackoverflow.com/questions/39372131
复制相似问题