C# 防止客户端应用程序中对同一资源的并发请求

C# 防止客户端应用程序中对同一资源的并发请求,c#,caching,concurrent-programming,C#,Caching,Concurrent Programming,我有一个客户端.NET应用程序,它使用WCF使用web服务。服务调用是并发执行的,可以请求相同的资源 我应该如何防止发起多个资源请求 我所尝试的: 在对后端进行调用的客户端服务中,我使用ConcurrentDictionary来缓存请求,不幸的是,这不会阻止对同一资源的请求,只会使重复的缓存项两次添加到字典中。我考虑将类似的请求排队,并在通过返回的请求之后响应它们。那要多少钱?我试图不重新发明轮子,但我认为这个问题应该相当普遍 我希望避免使用锁来序列化对资源的所有可能请求,因为我尝试访问的后端服

我有一个客户端.NET应用程序,它使用WCF使用web服务。服务调用是并发执行的,可以请求相同的资源

我应该如何防止发起多个资源请求

我所尝试的: 在对后端进行调用的客户端服务中,我使用ConcurrentDictionary来缓存请求,不幸的是,这不会阻止对同一资源的请求,只会使重复的缓存项两次添加到字典中。我考虑将类似的请求排队,并在通过返回的请求之后响应它们。那要多少钱?我试图不重新发明轮子,但我认为这个问题应该相当普遍

我希望避免使用锁来序列化对资源的所有可能请求,因为我尝试访问的后端服务器使用负载平衡器来提高性能,我希望利用它

我不能做的事情:实现服务器端缓存(我没有访问权限)或干扰WCF设置。 谢谢你的帮助/建议


注意:我已经在网站上搜索了可能的副本,但找不到解决我问题的任何副本。

为什么不使用资源锁定我不属于我们的异地服务器上的资源。我真的不知道您的真实情况…我可以建议您的服务代理(代理)呼叫服务,确保它是顺序的(同步调用),这意味着在第一个请求完成之前,第二个请求将在队列中等待,第一个请求完成后,您立即发出第二个请求我是否应该为每个不同的资源访问保留单独的队列?我试图避免序列化调用的原因之一是为了能够利用服务器端正在使用的负载平衡器