Windows サービスで WCF サービス ライブラリをホストしたいと考えています。ただし、ローカル ネットワークを介して別の wcfservice と通信します。
最近の最新のドキュメントや、この目的のためにソリューションを構成するためのヘルプを見つけるのに非常に苦労しています。誰でもアドバイスできますか:
a) この種の接続に適したエンドポイントは? (他の WCF サービスは、basicHttpBinding を使用してホストされます) - これ自体は、global.asax をハイジャックして Castle コンテナーを構成するのに適しています。ただし、このソリューションを Windows サービスでホストすると、global.asax にアクセスできなくなります。
b) このソリューションで 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>());
}
}