参考WCF服务的生命周期?

时间:2010-09-28 22:02:14

标签: wcf .net-3.5 object-lifetime

假设我有一个简单的WCF应用程序,客户端调用该应用程序以获取数字。其中没有太多处理,服务合同被归为SessionMode = SessionMode.NotAllowed。

何时调用构造函数?物体什么时候被破坏?是按请求调用的构造函数吗?

是否有任何参考文件或资源有此信息?我似乎无法找到它。

1 个答案:

答案 0 :(得分:1)

WCF由IIS托管,因此受其生命周期规则的约束。服务类本身可能会在应用程序中根据需要创建和销毁;在收到请求,调用方法和返回结果之后构造类,之后对象将离开范围并被处理/完成。

但是,包含您的服务的项目看起来像是IIS的普通ActiveServer.NET Web应用程序(查看应该包含在其中的Global.asax文件;它包含一个类型为HttpApplication的类,并表示该类的入口点IIS可用于控制它的应用程序),IIS将维护这些应用程序的“池”以处理来自多个客户端的请求。只要请求继续进入,并且IIS没有确定应用程序已“过时”并刷新它或整个池,应用程序将继续运行。因此,您声明的任何静态类,例如您的单例IoC容器,或您添加到用作子类型的派生HttpApplication类的任何内容,都将保留在内存中,直到应用程序被回收。