Bonjour,
J'ai l'erreure suivante :
Pour vous situer le contexte :The message with Action 'http://tempuri.org/ICollecteEnregistrement/SetServeurId' cannot be processed at the receiver, due to a ContractFilter mismatch at the EndpointDispatcher. This may be because of either a contract mismatch (mismatched Actions between sender and receiver) or a binding/security mismatch between the sender and the receiver. Check that sender and receiver have the same contract and the same binding (including security requirements, e.g. Message, Transport, None).
J'ai un serveur d'enregistrement qui attribue une adresse à chaque nouveau serveur de collecte. Le problème c'est que je ne trouve pas d'ou vient l'erreur... Si vous avez une idée, c'est gentil de m'aider
Host Serveur de Collecte :
Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 using (ServiceHost host = new ServiceHost(typeof(Collecte))) { host.Open(); Console.WriteLine("Serveur Collecte Started"); Console.WriteLine("Registring to Serveur Enregistrement"); using (ChannelFactory<IEnregistrement> channelFactory = new ChannelFactory<IEnregistrement>("Enregistrement")) { IEnregistrement proxyEnregistrement = channelFactory.CreateChannel(); proxyEnregistrement.Register(); } Console.ReadLine(); host.Close(); }
Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 public void Register() { Console.WriteLine(DateTime.Now.ToLongTimeString() + " : Register new server"); string address = "net.tcp://localhost:[port]/Enregistrement"; int port = GetFreeTcpPort(); address = address.Replace("[port]", port.ToString()); _serveursDeCollecte.Add(address, 0); using (ChannelFactory<ICollecteEnregistrement> channelFactory = new ChannelFactory<ICollecteEnregistrement>("Collecte")) { ICollecteEnregistrement proxyCE = channelFactory.CreateChannel(); proxyCE.SetServeurId(port); proxyCE.SetServeurAdress(address); } }
App.config serveur Enregistrement :
Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 <system.serviceModel> <client> <endpoint contract="ComInterface.ICollecteEnregistrement" binding="netTcpBinding" address="net.tcp://localhost:5556/Collecte" name="Collecte"/> </client> <services> <service name="ServeurEnregistrement.Enregistrement"> <endpoint contract="ComInterface.IEnregistrement" binding="netTcpBinding" address="net.tcp://localhost:5555/Enregistrement"/> </service> </services> </system.serviceModel>
App.config serveur Collecte :
Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 <system.serviceModel> <client> <endpoint contract="ComInterface.IEnregistrement" binding="netTcpBinding" address="net.tcp://localhost:5555/Enregistrement" name="Enregistrement"/> </client> <services> <service name="ServeurCollecte.Collecte"> <endpoint contract="ComInterface.ICollecteClient" binding="netTcpBinding" address="net.tcp://localhost:5556/Collecte"/> </service> </services> </system.serviceModel>
Partager