首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >仅限于单个应用程序域的WCF多并发服务

仅限于单个应用程序域的WCF多并发服务
EN

Stack Overflow用户
提问于 2013-11-05 23:58:08
回答 2查看 172关注 0票数 0

我有一个已经运行了一年多的服务,每天收到500K -100万个请求,并且处理了相当多的处理。通常,一个请求持续30-45秒。因此,我们指定服务使用ConcurrencyMode = Multiple和InstanceContextMode = PerCall。这对我们来说效果很好。

我遇到的问题是,我的代码中有一个区域使用单例模式来公开静态实例,我需要保证只有一个副本。我在故障排除后遇到的问题是,有多个应用域名创建了多个实例。这会引起问题。如何保证一个服务只创建一个应用程序域?

EN

回答 2

Stack Overflow用户

发布于 2013-11-06 00:19:49

没有直接回答这个问题:我如何保证只为一个服务创建了一个应用程序域?

将你的这个“单例”组件完全从IIS中分离出来,作为一个windows服务,并通过WCF命名管道绑定来使用它的服务,怎么样?我使用了named-pipe+WCF+win-service,发现通信框架在性能上进行了大量优化。所有ram/cpu开销都是在单例服务方法中运行的代码。

当然,如果单例服务提供者需要与实际的服务代码进行内存联合,那么这可能是一个问题。还只是个想法。

票数 2
EN

Stack Overflow用户

发布于 2013-11-12 04:08:53

如果您谈论的是代码方面的问题,那么可能值得去看看Jon Skeets Singleton solutions here

然而,如果你正在运行整个程序的多个实例,你别无选择,只能提取出对windows服务、web服务或数据库调用的单例调用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19793207

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档