【问题标题】:WCF throttling settings to ensure service availabilityWCF 限制设置以确保服务可用性
【发布时间】:2011-11-21 17:16:38
【问题描述】:

我最近使用 Visual Studio 2010 设置了 WCF 服务。该服务托管在 Windows 2008 服务器上的 IIS 中。我的合同公开了一种方法。该方法的实现执行两个快速 SQL SELECT 查询,然后根据结果执行一个 SQL INSERT 查询。换句话说,该服务响应迅速。短期我正在查看每秒 1 个请求。从长远来看,它可能是每秒 3 个请求。

我阅读了一些有关节流的信息,发现了 MaxConcurrentCalls(默认 16)、MaxconcurrentSessions(默认 10)和 MaxConcurrentInstance 等设置。显然,默认设置被认为是保守的,并在 WCF 4.0 中更改为 MaxConcurrentCalls(默认 100 * 处理器计数)、MaxconcurrentSessions(默认 16 * 处理器计数)。

  1. 如何找出我安装的 WCF 版本,以便知道我的默认设置是什么?
  2. 根据我提供的信息,哪些设置适合我的场景?

【问题讨论】:

  • 你看过Dynamic IP Restrictions吗?我发现它比您提到的选项更有用。您可以限制某些 IP 地址等。

标签: c# .net wcf


【解决方案1】:

在代码中,您可以使用System.Environment.Version 来确定CLR 的当前执行版本。

执行哪个版本取决于可用的、已安装的 CLR 版本以及可能请求特定版本的当前正在执行的程序集。

鉴于信息仍然很难说,因为很大程度上取决于实际的硬件、软件、负载等。您能做的最好的事情就是构建它,然后对系统进行压力测试以找出最佳点。

【讨论】:

  • 因此,如果我的 WCF 项目使用的是 .NET Framework 4,那么假设我运行的是 WCF 4.0 是否安全,那么我的默认限制设置是两者中的后者?
  • 是的,除非它们已在应用程序的配置设置中更改。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-03
  • 1970-01-01
  • 1970-01-01
  • 2011-11-14
  • 1970-01-01
相关资源
最近更新 更多