我的理解是,在IIS / WAS中托管时,为net.msmq配置的WCF服务不会作为HttpApplication运行,这意味着您不会在Global(Application_Start是重要的)中获取事件。我在这方面是否正确?
使用Windows Server AppFabric自动启动服务是否通过HTTP命中服务,导致Application_Start事件触发?如果是这样,这可靠吗?
我想我的真正的问题是,非HTTP WCF服务的初始化代码的“正确”位置在哪里?
特别是(因为不同的东西,正确的地方可能会有所不同):
后续问题:自定义IServiceBehavior中的事件是针对每个请求触发还是仅在启动时触发一次?那么ServiceHost.OnOpening() - 每个请求还是只在启动时一次? (我的测试显示它只有一次,但是有人知道WCF“生命周期”的记录在哪里,因为我似乎无法在任何地方找到它。)
答案 0 :(得分:1)
我无法验证IIS / WAS中托管的WCF服务是否可以配置为支持Application_Start,但不需要执行您想要的操作。我建议您与自定义ServiceHostFactory(对于WAS)一起创建自定义ServiceHost。这种方法记录在MSDN article和this blog post中。使用此方法,您可以在IIS / WAS,Windows服务或控制台应用程序中托管服务,因为初始化过程将是相同的。