Autor Beitrag
kyon86
Hält's aus hier
Beiträge: 5



BeitragVerfasst: So 14.09.08 16:41 
Hi,
Ich hab diesen Artikel (über einen WCF Server und Client)
www.codeproject.com/KB/WCF/WCFWPFChat.aspx
gelesen und mit dem Sourcecode gearbeteit sowie mit diesem
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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Veteran
Beiträge: 5502
Erhaltene Danke: 220

Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
BeitragVerfasst: 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 Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: So 14.09.08 21:22 
Net TCP Binding im Duplexbetrieb.

Der Server Endpoint ist (Im Programm festgelegt):
ausblenden C#-Quelltext
1:
2:
3:
4:
string strEndpoint = "net.tcp://" + "localhost" + ":" + strPort + "/service";
Uri uri = new Uri(strEndpoint); // net.tcp://localhost:8080/service
host = new System.ServiceModel.ServiceHost(typeof(Service.ServiceImpl), uri);
host.Open();



und beim Client:
ausblenden 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:

ausblenden volle Höhe 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:

ausblenden 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 user profile iconKha: Tags hinzugefügt