Entwickler-Ecke
Verteilte Systeme - WCF Endpoint Konfigurartion für Netzwert und Internet
kyon86 - So 14.09.08 16:41
Titel: WCF Endpoint Konfigurartion für Netzwert und Internet
Hi,
Ich hab diesen Artikel (über einen WCF Server und Client)
http://www.codeproject.com/KB/WCF/WCFWPFChat.aspx
gelesen und mit dem Sourcecode gearbeteit sowie mit diesem
http://www.ms.phy.hr/wcfchat/
auf dem er basiert.
Mein Client und Server funktioniert auch, allerdings nur wenn ich Client und Server auf dem gleichen Rechner laufen lasse. Ich weiß irgendwie überhaupt nicht wie ich Client und Server konfigurieren soll, wenn sie auf unterschiedlichen Rechnern in einem Netzwerk oder über Internet miteinander komunizieren sollen. Alle Beispiele die ich zu WCF bisher gefunden habe beziehen sich nur auf Localhost.
Vielleicht kann mir jemand von euch weiterhelfen wie die Endpoints und Bindings(z.b. in der app.config) für Client Server eingestellt werden müssten damit die Kommunikation über Netzwerk/Internet funktioniert. Oder vielleicht gibts irgendwo doch ein Beispiel dazu?
Mit freundlichen Grüßen und vielen Dank
Kyon
UGrohne - So 14.09.08 17:52
Du musst in der Endpoint-Configuration natürlich im Client die IP-Adresse des Servers hinterlegen. Wie sieht denn die Endpoint-Configuration im Moment aus und über welches Protokoll lässt Du die Kommunikation laufen?
kyon86 - So 14.09.08 21:22
Net TCP Binding im Duplexbetrieb.
Der Server Endpoint ist (Im Programm festgelegt):
C#-Quelltext
1: 2: 3: 4:
| string strEndpoint = "net.tcp://" + "localhost" + ":" + strPort + "/service"; Uri uri = new Uri(strEndpoint); host = new System.ServiceModel.ServiceHost(typeof(Service.ServiceImpl), uri); host.Open(); |
und beim Client:
C#-Quelltext
1:
| proxy.Endpoint.Address = new EndpointAddress("net.tcp://" + strIP + ":" + strPort + "/service"); |
Beim Test über ein Lokales Netzwerk habe ich dabei für strIP die Netzwerk IP des Server-Rechners "192.168.x.x" benutzt.
Dabei kam keine Verbindung zustande. Auf dem Rechner auf dem der Server läuft kann der Client aber wie erwähnt auf localhost verbinden.
Die AppConfig des Servers:
XML-Daten
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36:
| <configuration> <system.serviceModel>
<services> <service name="Service.ServiceImpl" behaviorConfiguration="MyBehavior"> <endpoint address="" binding="netTcpBinding" bindingConfiguration="DuplexBinding" contract="Service.IServer" /> </service> </services>
<client> <endpoint name="" binding="netTcpBinding" bindingConfiguration="DuplexBinding" contract="IServer"/> </client> <behaviors> <serviceBehaviors> <behavior name="MyBehavior"> <serviceThrottling maxConcurrentSessions="10000" /> </behavior> </serviceBehaviors> </behaviors>
<bindings> <netTcpBinding> <binding name="DuplexBinding" sendTimeout="00:00:01"> <reliableSession enabled="true" /> <security mode="None" /> </binding> </netTcpBinding> </bindings>
</system.serviceModel> </configuration> |
Und die des Client Programms:
XML-Daten
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23:
| <?xml version="1.0" encoding="utf-8" ?> <configuration> <system.serviceModel> <client> <endpoint name="" binding="netTcpBinding" bindingConfiguration="DuplexBinding" contract="IServer"/> </client> <bindings> <netTcpBinding> <binding name="DuplexBinding" sendTimeout="00:00:05"> <reliableSession enabled="true"/> <security mode="None"/> </binding> </netTcpBinding> </bindings> </system.serviceModel> <startup><supportedRuntime version="v2.0.50727"/></startup> </configuration> |
Moderiert von
Kha: Tags hinzugefügt
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!