J'ai une bibliothèque de services WCF contenant cinq contrats de service. La bibliothèque est hébergée via un service Windows. La plupart sinon la totalité de ma configuration pour la bibliothèque WCF est déclarative. La seule chose que je fais dans le code pour la configuration est de passer le type de la classe implémentant les contrats de service dans ServiceHost. J'appelle ensuite Open sur chacun des services au cours de l'événement Windows Service OnStart. Voici le message d'erreur que je reçois:L'hébergement d'un service WCF Lib via un service Windows obtient une exception System.InvalidOperationException: tentative de démarrage du service WCF
Le service ne peut pas être démarré. System.InvalidOperationException: Service '[Fubu.Conversion.Service1' a zéro points de terminaison d'application (non-infrastructure). Cela peut être dû au fait qu'aucun fichier de configuration n'a été trouvé pour votre application ou qu'aucun élément de service correspondant au nom de service n'a pu être trouvé dans le fichier de configuration ou qu'aucun point de terminaison n'a été défini dans l'élément de service. à System.ServiceModel.Description.DispatcherBuilder.EnsureThereAreNonMexEndpoints (description ServiceDescription) à System.ServiceModel.Description.DispatcherBuilder.InitializeServiceHost (description du ServiceDescription, ServiceHostBase ServiceHost) à System.ServiceModel.ServiceHostBase.InitializeRuntime() à System.ServiceModel .ServiceHostBase.OnBeginOpen() à System.ServiceModel.ServiceHostBase.OnOpen (TimeSpan timeout) à System.ServiceModel.Channels.CommunicationObject.Open (TimeSpan timeout) à System.ServiceModel.Channels.CommunicationObject.Open() à Fubu .RemotingHost.RemotingHost.StartServ ...
protected override void OnStart(string[] args)
{
// Uncomment to debug this properly
//System.Diagnostics.Debugger.Break();
StartService1();
StartService2();
StartService3();
StartService4();
StartService5();
}
Chacun des ci-dessus simplement procédez comme suit:
private void StartSecurityService()
{
host = new ServiceHost(typeof(Service1));
host.Open();
}
service Lib résumé de
<services>
<service behaviorConfiguration="DefaultServiceBehavior" name="Fubu.Conversion.Service1">
<endpoint address="" binding="netTcpBinding" bindingConfiguration="TCPBindingConfig"
name="Service1" bindingName="TCPEndPoint" contract="Fubu.Conversion.IService1">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
<endpoint address="mex" binding="mexTcpBinding" bindingConfiguration=""
name="mexSecurity" bindingName="TcpMetaData" contract="IMetadataExchange" />
<host>
<baseAddresses>
<add baseAddress="net.tcp://localhost:8025/Fubu/Conversion/Service1/" />
</baseAddresses>
</host>
</service>
...
contrat est réglé comme suit: espace de noms Fubu.Conversion.Service1 {
[ServiceContract(Namespace = "net.tcp://localhost:8025/Fubu")]
public interface IService1
{
J'ai regardé "haut et bas" pour une solution sans chance. La réponse est-elle évidente? La solution à cela ne semble pas être. Merci