当WCF服务首次启动时,获得通知的最佳方式是什么?
Global.asax中是否有类似于ASP.NET应用程序的Application_Start方法?
发布于 2009-04-11 07:29:23
好吧,这可能有点棘手,因为调用WCF服务的首选方式是在“每次调用”的基础上,例如,你实际上没有任何“启动”的东西,然后只是闲逛,真的。
如果您在IIS或WAS中托管您的服务,它甚至是服务主机的“按需加载”-当消息到达时,主机将被实例化并处理请求。
如果你自己托管,你要么有一个控制台,要么有Winforms应用程序--所以你可以连接到那里,知道它们什么时候启动。如果您有一个Windows服务来托管您的服务主机,那么您很可能会覆盖ServiceBase类-->钩子上的OnStart和OnStop方法。
问题更多的是:你到底想要实现什么?只是记录日志或者类似的东西,或者你想在内存中建立一些东西来保存??
Marc
发布于 2009-04-11 00:54:58
因为它只是一个类,所以你可以使用一个静态构造函数,它将在第一次使用该类型时被调用。
public Service : IContract
{
public Service(){ // regular constructor }
static Service(){ // Only called first time it's used. }
}
发布于 2014-07-09 15:41:03
您始终可以手动将global.asax文件添加到您的WCF服务应用程序中,因为它托管在IIS上并与ASP.NET管道集成:
<%@ Application Codebehind="Global.asax.cs" Inherits="WcfApplication" Language="C#" %>
public class WcfApplication : HttpApplication
{
protected void Application_Start()
{
}
}
https://stackoverflow.com/questions/739268
复制相似问题