使用WCF服务挂钩到AppInitialize

Mar*_*ark 6 .net wcf initialization

我的WCF服务有问题.我需要在pre application_start之前做一个windsor容器注入,并注意到我可以使用AppInitialise方法.它适用于visual studio调试,但是当我部署到IIS时,代码不会被触发..我按如下方式初始化了类

public static class Class1
{
    public static void AppInitialize()
    {
        IWindsorContainer container;
        container = new WindsorContainer("windsor.xml");
        container.AddFacility<WcfFacility>();
        container.Resolve<ProfileLookUpService>();
    }
}
Run Code Online (Sandbox Code Playgroud)

是否需要执行任何特殊任务才能使其在IIS上运行.我正在使用版本6.

谢谢!

mar*_*c_s 4

嗯,你需要注意几件事:

  • WCF 服务可以是自托管的 - 它并不总是托管在 IIS 中,因此如果可能的话,不要依赖于 IIS 特定的机制

  • 服务器端的 WCF 服务基本上由一个ServiceHost(或其自定义后代)组成,它初始化 WCF 运行时,并且它将根据需要创建服务类实例来处理请求

所以这实际上取决于你想在哪里注入你的东西 - 我的直觉告诉我你可能对创建自定义 ServiceHost 后代的能力感兴趣,并挂钩它的一些方法和事件来处理你的初始化。

在这里查看一些关于该主题的非常好的文章和博客文章: