Ich habe zwei völlig separate Dienste (zusammen mit ihren Verträgen), die völlig unterschiedliche Abhängigkeiten sowie völlig unterschiedliche Verantwortlichkeiten haben. Aber Dinge, die sie gemeinsam bekam sind:Hosten mehrerer Dienste innerhalb eines Diensthosts?
- Sie müssen geöffnet/geschlossen werden zusammen
- Sie teilen die gleiche Basisadresse
- Sie haben die gleiche Bindung/Transport
Dummy Verträge :
public class IFoo {
void Foo();
}
public class IBar {
void Bar();
}
Nun, was ich tun möchte, ist, sie beide in demselben Service-Host zu hosten. Ich bin mir bewusst, dass es möglich ist, beide Dienste als Endpunkte zu entlarven und sie in der gleichen Diensttyp wie folgt implementieren:
public class FooBar : IFoo, IBar { }
var host = new ServiceHost(typeof(FooBar));
Jedoch habe ich nach einem Weg, bin auf der Suche, so etwas zu tun:
public class FooImpl : IFoo { }
public class BarImpl : IBar { }
var host = new ServiceHost();
host.AddEndpoint(typeof(FooImpl);
host.AddEndpoint(typeof(BarImpl);
host.Open();
So kann ich meine Service-Implementierungen nett und ordentlich halten, jeder mit seinen eigenen Abhängigkeiten anstelle eines god-Objekts für alles.
Jeder hat eine Idee, wie dies zu erreichen ist?
Müssen Sie beide Dienste im selben ServiceHost hosten, oder akzeptieren Sie mehrere ServiceHost-Instanzen mit jeweils eigenen Diensten und Endpunkten? –
@WicherVisser Leider nicht, weil alle Dienste auf dem gleichen Port laufen müssen. – artganify
Mögliches Duplikat von [WCF ServiceHost mit mehreren Verträgen ausführen] (http://stackoverflow.com/questions/334472/run-wcf-servicehost-with-multiple-contracts) –