如何最大限度地减少创建WCF客户端的开销?

时间:2013-03-28 11:30:38

标签: performance wcf

我目前有以下代码:

    public static ICmsDataServiceWcf Data
    {
        get
        {
            if (HttpContext.Current != null && HttpContext.Current.Session != null && HttpContext.Current.Session["DataSevice"] == null)
            {
                HttpContext.Current.Session.Add("DataService", GetDataService());
            }

            if (HttpContext.Current != null && HttpContext.Current.Session != null && HttpContext.Current.Session["DataSevice"] != null)
            {
                return (ICmsDataServiceWcf)HttpContext.Current.Session["DataService"];
            }
            return GetDataService();
        }
    }

这样做的目的是最小化创建/销毁WCF客户端所涉及的开销。它看起来效果很好。我遇到的一个问题是,很多请求来自后台的任务。这些显然没有上下文,因此返回到返回GetDataService()行。

我正在考虑做的是创建WCF客户端的静态实例并返回它。关于这种方法我关注的一件事是,许多任务将通过单个实例提出大量请求。这最终会成为一个瓶颈吗?如果是这样,那么创建一个说10个WCF客户端的池来扩散负载可能是个更好的主意吗?

谢谢,

0 个答案:

没有答案
相关问题