Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 计算服务合同中的用户请求_C#_.net_Web Services_Wcf_Throttling - Fatal编程技术网

C# 计算服务合同中的用户请求

C# 计算服务合同中的用户请求,c#,.net,web-services,wcf,throttling,C#,.net,Web Services,Wcf,Throttling,我正在开发一个WCF服务,它一次只能处理一个用户请求。其他请求必须排队,如果队列变大,则其他请求存储在数据库中,并相应地通知用户。我可以通过在WCF中实现服务节流来获取用户队列,但当队列较长时,用户会收到请求超时错误。对于请求限制,我在服务契约2上使用了WCF服务限制 [ServiceBehavior(InstanceContextMode = InstanceContextMode.Single, ConcurrencyMode = ConcurrencyMode.Single)] 但是对于

我正在开发一个WCF服务,它一次只能处理一个用户请求。其他请求必须排队,如果队列变大,则其他请求存储在数据库中,并相应地通知用户。我可以通过在WCF中实现服务节流来获取用户队列,但当队列较长时,用户会收到请求超时错误。对于请求限制,我在服务契约2上使用了WCF服务限制

[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single, ConcurrencyMode = ConcurrencyMode.Single)]
但是对于服务合同1,我已经实现了

[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerSession, ConcurrencyMode = ConcurrencyMode.Multiple)]
我尝试计算来自WCF节流服务的挂起请求,但似乎没有这样的方法可以给出WCF中的当前队列列表

是否有任何方法可以计算其他服务中的队列列表 合同 我是否必须更改设计以在WCF服务中实现此流。
在IIS管理器的“应用程序池->高级设置”下,您可以根据需要将队列长度设置为更大的值:

设置队列长度不允许我在运行时计算队列中当前的请求数。唯一的其他建议是将service contract 2中的所有请求放在db或arraylist中,然后查询记录数。是的,我也尝试过实现,但因为它一次只处理一个请求,所有其他请求都必须处于搁置状态,因为我也必须实现直接下载功能。如果不需要直接下载,我可以执行DB实现并一次处理一个请求。另一个选项是在运行时捕获并存储用户请求,对其进行处理并将其放入结果表中,然后实现用户响应函数。但我不知道如何在WCF中捕获用户请求并手动发送响应。