Mik*_*urs 34 wcf iis-7 was nettcpbinding global-asax
我想将netTcpBinding用于我目前在IIS7中托管的WCF应用程序,这意味着将其配置为使用WAS.这是相当直接的,但是,我的应用程序以前在global.asax文件中使用了Application_Start事件.我不需要访问httpContext(我理解IIS7中已经删除了访问权限),但我还是想挂钩启动或初始化方法?
在WAS中托管与IIS7相关的应用程序时是否存在等价物?
使用经典模式不是一个选项(我再次对httpcontext不感兴趣,如果使用http绑定,这似乎只能起作用) - 我已经看到了一个将静态类插入app_code文件夹的示例,该文件夹看起来像一个可怕的黑客.
Kev*_*Kev 26
我相信AppInitialize()你正在寻找的方法.这是一篇关于使用它在WAS托管的WCF服务中初始化Castle Windsor的文章:
本文的实质是,而不是使用Application_Start()WAS中不会调用的内容:
protected void Application_Start(object sender, EventArgs e)
{
var container = new WindsorContainer("ioc.config");
DefaultServiceHostFactory.RegisterContainer(container.Kernel);
}
Run Code Online (Sandbox Code Playgroud)
使用:
public class InitialiseService
{
/// <summary>
/// Application initialisation method where we register our IOC container.
/// </summary>
public static void AppInitialize()
{
var container = new WindsorContainer("ioc.config");
DefaultServiceHostFactory.RegisterContainer(container.Kernel);
}
}
Run Code Online (Sandbox Code Playgroud)
引用马特:
我承认我花了一段时间更详细地看着主机工厂,期待包装
DefaultServiceHostFactory.但是,似乎有一个更简单的解决方案,即使用少量记录的AppInitialize方法.如果你创建一个类(任何类),将它放入App_Code项目的ASP.NET 文件夹中并给它一个如下定义的方法签名,这个小宝贝将在你想要的时候被解雇.然后,您可以在那里初始化您的IoC容器.