与WCF一起休息api - 理想的服务和运营合同部门

时间:2014-10-21 12:21:46

标签: c# asp.net wcf rest

我有一个wcf rest api项目,有很多服务合同(差不多20个),每个服务合同都有X方法(从3到20个方法)。

我在IIS7中托管它并注册所有路由抛出Global.asax(不使用.svc文件)。

每次我回收IIS(每次安装新代码后),对每条路线的第一次请求都非常慢(在某些路线中从30秒到2分钟)。

现在我想解决这个问题并重建路线及其方法数量。 我试着在每份服务合同中找到理想的运营合同金额和理想的服务合同数量,但找不到合适的答案。

有没有一个理想的解决方案来解决我的问题?

1 个答案:

答案 0 :(得分:0)

在阅读了一些内容并对我的api做了一些测试之后我得出了一些结论:

  1. 服务和运营合同没有神奇的数字。 但有时候,拆分一个大的服务合同(例如一个有20个方法的合同)在回收后需要花费太多时间才能加载,这是一个好主意,可以提供帮助。
  2. 如果回收后的预热时间太长(对于某些应用,10秒也可能太长),您可以使用一些模式来避免它。 Example for those patterns
  3. 这些模式的主要思想是避免用户等待请求。 解决此问题的方法之一是使用负载均衡器,我们部署的每个服务器都将从负载均衡器中临时删除,所有请求将转到其他服务器。 在这些模式中,我还找到了一个解决方案,允许用户访问旧版本的服务器,而新版本则安装在其他服务器上。

    希望它会帮助我身边的人。