代码之家  ›  专栏  ›  技术社区  ›  Ta01

WCF InstanceContextMode

  •  2
  • Ta01  · 技术社区  · 16 年前

    我有一个web应用程序使用代理调用WCF服务上的操作,该服务从AS400返回数据,如与我们公司相关的不同销售区域、我们在现场的不同门店等。这些销售区域和门店不会经常更改,商店每年可能只增加两次,而地区在几年内都是一样的。

    我想我的困惑在于InstanceContextMode。当代理客户端调用GetRegions()或GetStoresForRegion(int regionNumber)时,我只是返回一个“区域”和“存储”列表

    如果我将InstanceContextMode设置为single,并在任何服务操作调用之前将区域和存储初始化并填充到,这会有任何帮助吗?基本上现在,它对每个调用都进行DB查找,我认为没有必要这样做。

    更新服务是IIS托管的,所以整个问题可能是没有意义的

    1 回复  |  直到 16 年前
        1
  •  1
  •   marc_s    14 年前

    基本的最佳实践建议是使用每次调用的单实例服务。这是最容易创建的,没有并发性噩梦等。

    但是:当然,每次调用服务时,都会创建一个服务实例并查询数据库后端。

    每次调用尝试一次,首先是单个实例,只有在必要时才进行优化!

    马克

    推荐文章