Benutzer mit den meisten Antworten
WCF Server-Client mit "TCP" und "ServiceContract" auf eine Virtuelle Maschine.

Frage
-
Hi, ich suche gerade eine Lösung für Server-Client Kommunikation. Die Besonderheit, dass der Server auf eine virtuelle Maschine(Cloud) laufen sollte.
Ich habe mit dem WCF-Dienst von VS ausprobiert, es klappt schon mal im Prinzip. Aber ich verstehe diese vorgefertige Projekte nicht ganz.
1. Wo/wie kann ich den Server als TCP freigeben? Default ist der WCF-Dienst als Http eingestellt.
2. Wie kann ich den Server laufen lassen? Bis jetzt starte ich den Server immer mit Visual Studio.
3. Der Client habe ich mit "Dienstverweis hinzufügen", das passiert alles automatisch. Ich würde aber gern den Client manuell stellen, weil ich sonst die Adresse nicht ändern kann.
Auf Blogs, Tutorien und sonstige Hinweise würde ich mich freuen.
Mit freundlichen Grüßen
Nghia
Antworten
-
Hallo,
Siehe: Code Quick Start: Create and deploy a WCF service in Windows Azure.
Gruß
Marcel- Als Antwort markiert Robert BreitenhoferModerator Donnerstag, 20. Dezember 2012 16:22
-
Hallo Nghia,
1. Die zugelassenen Protokolle kannst Du über die Bindings definieren, z.B. in der web.config. Beachte aber, das nicht jeder Client mit TCP klar kommt, ebenso die Problematik mit Firewalls.
Siehe z.B.
MSDN Magazin: WCF-Bindungen im Detail
MSDN: Choosing a Transport
Da sind die Vor- und Nachteile der einzelnen Protokolle aufgeführt.2. Den Dienst kannst Du im IIS laufen lassen; das gleiche passiert bereits, wenn Du es im VS laufen lässt, im SysTray solltest Du dazu auch ein Icon finden. Für eine bessere Skalierung/Verwaltbarkeit könntest Du zusätzlich auch noch AppFabric nutzen.
3. Hier habe ich nicht ganz verstanden, was Du warum "manuell stellen" willst?
Olaf Helper
Blog Xing- Als Antwort markiert Robert BreitenhoferModerator Donnerstag, 20. Dezember 2012 16:22
-
Wenn ich diese WCF-Dienstanwendung auf eine Virtuelle Maschine laufen lassen würde, und irgendwo mit einem Client diese WCF-Dienstanwendung zugreifen möchte, müsste ich die Dienstadresse (Clientseitig) ändern oder nicht?
Hallo Nghia,
richtig, dann musst die URL geändert werden.
Das kannst Du zum einem in Deinem Projekt machen; Rechte-Maus auf den Dienstverweis => "Dienstverweis konfigurieren ..."
Zum anderen könntest Du auch es über die .Config Datei im Client Bereich über einen "Endpoint" konfigurierbar gestalten. Der Konstruktor des Proxy Clients hat 5 Überladungen, bei einer kann man den Endpoint Namen übergeben.
In der .Config sieht es dann so aus:
<system.serviceModel> <bindings> <basicHttpBinding> <binding name="BasicHttpBinding_IService1" /> </basicHttpBinding> </bindings> <client> <endpoint address="http://localhost:57949/Service1.svc" binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IService1" contract="ServiceReference1.IService1" name="BasicHttpBinding_IService1" /> </client> </system.serviceModel>
Alternativ kannst Du es auch per Tool erledigen, das kannst Du in Visual Studio 2010 über's Menü "Extras" => "WCF-Dienstkonfigurations-Editor" aufrufen, dort sieht die gleiche Konfiguration dann so aus:
Olaf Helper
Blog Xing- Als Antwort markiert Robert BreitenhoferModerator Donnerstag, 20. Dezember 2012 16:22
Alle Antworten
-
Hallo,
Siehe: Code Quick Start: Create and deploy a WCF service in Windows Azure.
Gruß
Marcel- Als Antwort markiert Robert BreitenhoferModerator Donnerstag, 20. Dezember 2012 16:22
-
Hallo Nghia,
1. Die zugelassenen Protokolle kannst Du über die Bindings definieren, z.B. in der web.config. Beachte aber, das nicht jeder Client mit TCP klar kommt, ebenso die Problematik mit Firewalls.
Siehe z.B.
MSDN Magazin: WCF-Bindungen im Detail
MSDN: Choosing a Transport
Da sind die Vor- und Nachteile der einzelnen Protokolle aufgeführt.2. Den Dienst kannst Du im IIS laufen lassen; das gleiche passiert bereits, wenn Du es im VS laufen lässt, im SysTray solltest Du dazu auch ein Icon finden. Für eine bessere Skalierung/Verwaltbarkeit könntest Du zusätzlich auch noch AppFabric nutzen.
3. Hier habe ich nicht ganz verstanden, was Du warum "manuell stellen" willst?
Olaf Helper
Blog Xing- Als Antwort markiert Robert BreitenhoferModerator Donnerstag, 20. Dezember 2012 16:22
-
@Marcel Roma
Hi, das mit dem Azure WebWorkerRole hab ich ausprobiert, alles funktioniert. Jedoch sollte der Server auf eine virtuelle Maschine laufen können, unabhängig von Azure Service Dienst.
@Olaf Helper Danke für die Links.
Wegen der Frage 3, ich kann mit "Dienstverweis hinzufügen" den "Verweis auf Serivce" automatisch erstellen lassen. Aber der Verweis zeigt auf meine lokale Adresse (http://localhost:64410/), welche die WCF-Dienstanwendung läuft. Wenn ich diese WCF-Dienstanwendung auf eine Virtuelle Maschine laufen lassen würde, und irgendwo mit einem Client diese WCF-Dienstanwendung zugreifen möchte, müsste ich die Dienstadresse (Clientseitig) ändern oder nicht?
mfgNghia
- Bearbeitet Robert BreitenhoferModerator Montag, 17. Dezember 2012 17:40 Formatierung
-
Wenn ich diese WCF-Dienstanwendung auf eine Virtuelle Maschine laufen lassen würde, und irgendwo mit einem Client diese WCF-Dienstanwendung zugreifen möchte, müsste ich die Dienstadresse (Clientseitig) ändern oder nicht?
Hallo Nghia,
richtig, dann musst die URL geändert werden.
Das kannst Du zum einem in Deinem Projekt machen; Rechte-Maus auf den Dienstverweis => "Dienstverweis konfigurieren ..."
Zum anderen könntest Du auch es über die .Config Datei im Client Bereich über einen "Endpoint" konfigurierbar gestalten. Der Konstruktor des Proxy Clients hat 5 Überladungen, bei einer kann man den Endpoint Namen übergeben.
In der .Config sieht es dann so aus:
<system.serviceModel> <bindings> <basicHttpBinding> <binding name="BasicHttpBinding_IService1" /> </basicHttpBinding> </bindings> <client> <endpoint address="http://localhost:57949/Service1.svc" binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IService1" contract="ServiceReference1.IService1" name="BasicHttpBinding_IService1" /> </client> </system.serviceModel>
Alternativ kannst Du es auch per Tool erledigen, das kannst Du in Visual Studio 2010 über's Menü "Extras" => "WCF-Dienstkonfigurations-Editor" aufrufen, dort sieht die gleiche Konfiguration dann so aus:
Olaf Helper
Blog Xing- Als Antwort markiert Robert BreitenhoferModerator Donnerstag, 20. Dezember 2012 16:22
-
Hallo LocomTester,
Ich gehe davon aus, dass die Antworten Dir weitergeholfen haben.
Solltest Du noch "Rückfragen" dazu haben, so gib uns bitte Bescheid.Grüße,
RobertRobert Breitenhofer, MICROSOFT
Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „Entwickler helfen Entwickler“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.