WCF-Dienstbibliothek, die als Windows-Dienst mit dem Castle.Windsor 3.0-Problem gehostet wird

Ich möchte meine WCF-Dienstbibliothek in einem Windows-Dienst hosten. Es wird zwar über ein lokales Netzwerk mit einem anderen wcf-Dienst kommuniziert.

Es fällt mir sehr schwer, eine aktuelle Dokumentation zu finden oder die Lösung für diesen Zweck zu konfigurieren. Kann mir jemand raten:

a) Was ist der bevorzugte Endpunkt für diese Art von Verbindung? (Der andere WCF-Dienst wird mit einem basicHttpBinding gehostet.) Dies eignet sich für sich genommen gut zum Konfigurieren des Castle-Containers durch Hijacking der global.asax. Durch das Hosten dieser Lösung in einem Windows-Dienst habe ich jedoch keinen Zugriff mehr auf ein global.asax!

b) Wie konfiguriere ich Castle Windsor für die Verwendung von DI mit dieser Lösung? Derzeit habe ich mich mit der AppInitilize () -Methode von App_Code und einigen anderen, nicht mehr gültigen Lösungen befasst.

Aktuelle Lösungsarchitektur:

* Core (C # -Klassenbibliothek)

* Dienste (C # -Klassenbibliothek)

* WCF Servics (WCF-Servicebibliothek)

* Windows-Dienst (Windows-Dienstprojekt)

Beispielcode für AppInitilize () [was derzeit nicht funktioniert]:

<code>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>());
            }
        }
</code>

Antworten auf die Frage(1)

Ihre Antwort auf die Frage