Ich habe einen Dienst, der in WAS gehostet wird. Ich versuche, diesen Service mit Abhängigkeiten zu versehen, habe aber Schwierigkeiten, zu finden, wo das zu tun ist. In einem WCF-Dienst, der in IIS gehostet wird, können Sie das Ereignis "application_onstart" zum Instanziieren des Burgcontainers verwenden. Dies ist jedoch in meinem Szenario nicht verfügbar. Also, ich versuche, eine benutzerdefinierte Host-Fabrik zu erstellen wie folgt:WCF Schloss Windsor und WAS
public override ServiceHostBase CreateServiceHost(string constructorString, Uri[] baseAddresses)
{
container = new WindsorContainer();
container.Register(Component.For<IMyDependency>().ImplementedBy<MyDependency>());
DefaultServiceHostFactory.RegisterContainer(container.Kernel);
var service = container.Resolve(constructorString);
ServiceHost serviceHost = new ServiceHost(service, baseAddresses);
return serviceHost;
}
Dies funktioniert gut mit Singletons WCF-Dienste, aber wie bekommt man diese mit arbeiten pro-Anruf? Bei Nicht-Singleton-Diensten wird erwartet, dass ein Typ an den ServiceHost-Konstruktor und nicht an einen tatsächlichen Dienst übergeben wird. Wenn ich dies jedoch tue, sucht der Dienst nach einem parameterlosen Konstruktor, nicht nach der DI-Version.
Irgendwelche Ideen, wie man das alles funktioniert?
Dank
Danke, ich habe WCF Facility arbeiten mit WCF-Dienste in IIS aktiviert, aber nicht WAS. In der Vergangenheit habe ich den Dienst einfach an die Wcf-Fabrik angeschlossen und dann den Container in der global.asax hinzugefügt. Allerdings kann ich den Container in global.asax nicht mit WAS verbinden, wie würdest du das alles zusammensetzen? –
Die Antwort ist in AppInitialize() einhängen Dank –
cool, froh, dass Sie es geschafft haben. Wenn Sie Fragen zu Castle haben, fragen Sie am besten in der Diskussionsliste: http://groups.google.com/group/castle-project-users –