我是Wcf的新手并尝试创建我的第一个Wcf服务。添加了具有非托管代码并进行文件操作的类(新程序集)。服务行为设置如下
InstanceContextMode = InstanceContextMode.Single
ConcurrencyMode = ConcurrencyMode.Single
当访问服务是单一模式时,将创建新的文件操作类。我注意到,如果文件操作类失败(内存泄漏或严重错误),主机的所有新连接都会受到先前连接的影响。
是否可以创建在客户端连接关闭后完全隔离并完全销毁的Wcf实例?
的问候, 托马斯
答案 0 :(得分:2)
是的,这是首选模式 - 它被称为“每次通话”:
InstanceContextMode = InstanceContextMode.PerCall
ConcurrencyMode = ConcurrencyMode.Single
这样,进入您的WCF服务的每个请求都将获得它自己的,独立的,孤立的服务类实例,该实例将处理该请求然后被处置。
这应该可以为您提供最大的性能,并隔离彼此的请求。