我有一个web应用程序使用代理调用WCF服务上的操作,该服务从AS400返回数据,如与我们公司相关的不同销售区域、我们在现场的不同门店等。这些销售区域和门店不会经常更改,商店每年可能只增加两次,而地区在几年内都是一样的。
我想我的困惑在于InstanceContextMode。当代理客户端调用GetRegions()或GetStoresForRegion(int regionNumber)时,我只是返回一个“区域”和“存储”列表
如果我将InstanceContextMode设置为single,并在任何服务操作调用之前将区域和存储初始化并填充到,这会有任何帮助吗?基本上现在,它对每个调用都进行DB查找,我认为没有必要这样做。
更新服务是IIS托管的,所以整个问题可能是没有意义的
基本的最佳实践建议是使用每次调用的单实例服务。这是最容易创建的,没有并发性噩梦等。
但是:当然,每次调用服务时,都会创建一个服务实例并查询数据库后端。
每次调用尝试一次,首先是单个实例,只有在必要时才进行优化!
马克