我想在 Windows 服务中托管我的 WCF 服务库。尽管它将通过本地网络与另一个 wcfservice 通信。
我很难找到最近的最新文档或为此目的配置解决方案的帮助。任何人都可以建议:
a) 这种连接的首选端点是什么?(另一个 WCF 服务使用 basicHttpBinding 托管)——这本身很适合通过劫持 global.asax 来配置 Castle 容器。但是,在 Windows 服务中托管此解决方案意味着我不再可以访问 global.asax!
b) 如何配置 Castle Windsor 以在此解决方案中使用 DI?目前我已经研究了将它与 App_Code 的 AppInitilize() 方法以及其他一些不再有效的解决方案挂钩。
当前解决方案架构:
*核心(C# 类库)
*服务(C# 类库)
*WCF 服务(WCF 服务库)
*Windows 服务(Windows 服务项目)
AppInitilize() 的示例代码 [目前似乎无法正常工作]:
public class WindsorConfiguration
{
public static IWindsorContainer Container { get; private set; }
public static void AppInitialize()
{
{
Container = new WindsorContainer()
.AddFacility<WcfFacility>()
.Register(Component.For<IVirusCheckService>().ImplementedBy<VirusCheckService>()
.LifeStyle.Transient
.AsWcfService(new DefaultServiceModel()
.AddBaseAddresses("http://localhost:8080/MyService")
.AddEndpoints(WcfEndpoint.BoundTo(new BasicHttpBinding())
.At("basic"))
.PublishMetadata(o => o.EnableHttpGet())))
.Register(Component.For<ILoggingService>().ImplementedBy<LoggingService>());
}
}