Announcement

Collapse
No announcement yet.

WCF Endpoint Konfigurartion für Netzwert und Internet

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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

  • #2
    Hallo Kyon,

    Du kannst in deiner config Datei mehrere Endpoints definieren - 'netTcpBinding' fuer Intranet und 'wsHttpBinding' fuer Internet (zum Beispiel).

    Im Startup-Code kannst du dann zum Beispiel mit einem simplen Ping Command feststellen, ob dein interner Server zur Verfuegung steht und wenn dem so ist 'netTcpBinding' verwenden, ansonsten 'wsHttpBinding'.

    Also grob zusammengefasst und ganz einfach (ohne Gewaehr )

    web.config Beispiel:
    Code:
    <service ...>
        <endpoint 
            name="netTcpAddress" 
            binding="netTcpBinding" 
            address="net.tcp://192.168.0.1:9000/..."/>
        <endpoint 
            name="httpAddress" 
            binding="wsHttpBinding" 
            address="http://www.companyserver.at:8000/..."/>
    </service>
    C# Code Beispiel:
    Code:
    MyService svc;
    if (Ping(internalServer))
    {
        svc = new MyService("netTcpAddress");
    }
    else
    {
        svc = new MyService("httpAddress");
    }
    Hoffe das hilft dir weiter.
    *-- robert.oh. --*

    Comment

    Working...
    X