vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevAniGif - als kostenlose Vollversion auf unserer vb@rchiv CD Vol.5  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

ASP.NET, WebServices u. Remoting
WCF von PC zu PC 
Autor: mkolb
Datum: 24.10.16 19:37

Hallo,

ich möchte eine Kommunikation von PC zu PC durchführen, d. h. einfach etwas vom Client zum Host abfragen/übertragen. Dazu wollte ich WCF verwenden.
Habe dazu eine Demo gefunden, die funktioniert, allerdings nur innerhalb des PCs.
Wenn ich die Demo auf 2 unterschiedlichen PCs verteile und von Client auf den Host zugreifen möchte, dann geht es nicht.
z. B. erhalte ich folgende Fehlermeldung:

The communication object, System.ServiceModel.Channels.ServiceChannel, cannot be used for communication because it is in the Faulted state

Im Host steht folgender Code:

        static void Main(string[] args)
        {
            try
            {
                using (ServiceHost host = new ServiceHost(typeof(WcfHost)))
                {
                    Uri baseAddress = new Uri("net.tcp://sv1:8080/MeinService");
                    WSHttpBinding b = new WSHttpBinding();
                    b.Security.Mode = SecurityMode.Message;
                    b.Security.Message.ClientCredentialType = _
                      MessageCredentialType.Certificate;
                    NetTcpBinding binding = new NetTcpBinding();
                    host.AddServiceEndpoint(typeof(IWcfHost), binding, _
                      baseAddress);
                    host.Open();
                    Console.WriteLine("Service started, press any key to finish" & _
                      "execution.");
                    Console.ReadKey();
                    host.Close();
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("Host:" + ex.Message);
                Console.ReadKey();
            }
        }
Der Client hat folgenden Code:

        public Form1()
        {
            InitializeComponent();
            try
            {
                Uri baseAddress = new Uri("net.tcp://sv5:8080/MeinService");
                WSHttpBinding b = new WSHttpBinding();
                b.Security.Mode = SecurityMode.Message;
                b.Security.Message.ClientCredentialType = _
                  MessageCredentialType.Certificate;
                EndpointAddress address = new EndpointAddress(baseAddress);
                NetTcpBinding binding = new NetTcpBinding();
                ChannelFactory<IWcfHost> factory = new _
                  ChannelFactory<IWcfHost>(binding, address);
                host = factory.CreateChannel();
            }
            catch (Exception ex)
            {
                Console.WriteLine("Client:"+ex.Message);
                Console.ReadKey();                
            }
        }
Ich habe bereits auf beiden PCs (Server2012R2+ Workstation Windows10) jeweils die Firewall deaktiviert.
Leider geht es nicht.

Muß ich noch irgendwie/irgendwo eine Art Authentifizierung durchführen ?

Tschau
Martin

mein aktuelles .net-Projekt:
http://www.fiman.de
freue mich über Test-Informationen.

Screenshots gibt es hier: http://www.fiman.de

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: WCF von PC zu PC 
Autor: mkolb
Datum: 30.10.16 13:57

Hallo,
habe festgestellt, bei der kleinen Demo muß der PC-Name als IP angegeben werden:

z. B.
Uri baseAddress = new Uri("net.tcp://sv1:192.168.0.100/MeinService");
Tschau
Martin

mein aktuelles .net-Projekt:
http://www.fiman.de
freue mich über Test-Informationen.

Screenshots gibt es hier: http://www.fiman.de

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: WCF von PC zu PC 
Autor: effeff
Datum: 30.10.16 18:18

//habe festgestellt, bei der kleinen Demo muß der PC-Name als IP angegeben werden//

Es reicht schon, entweder DNS zu betreiben oder im einfachsten Fall einen Eintrag in die "hosts" vorzunehmen, damit Dein armer Rechner auch weiß, wie er den PC-Namen auflösen (also vom einem Namen zu einer IP) soll...

Wenn Dein Rechner keinen Eintrag in die "hosts" hat, um einen Namen zu einer IP aufzulösen, oder Du keinen DNS-Server betreibst, der dieses dann übernimmt, wird Dein Rechner seinen Gegenpart nie finden. Die direkte Angabe einer IP-Adresse funktioniert zwar, aber es kann immer noch sein, dass sich diese IP-Adresse ändert, weil das Lease abgelaufen ist (sofern keine statische IP-Adresse benutzt wird). In dem Fall wäre die Benutzung eines DNS-Servers am geschicktesten.

EALA FREYA FRESENA

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: WCF von PC zu PC 
Autor: mkolb
Datum: 30.10.16 18:24

Hi,
also, DNS ist eingerichtet. Ansonsten kann ich die PCs mit dem DNS-Namen aich anpingen.
Daher war ich davon ausgegangen, daß es auch so ginge.

In dem Fall ging es wirklich nur mit der IP-Adresse.

Tschau
Martin

mein aktuelles .net-Projekt:
http://www.fiman.de
freue mich über Test-Informationen.

Screenshots gibt es hier: http://www.fiman.de

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: WCF von PC zu PC 
Autor: effeff
Datum: 30.10.16 23:01

Was für eine Umgebung hast Du denn? Benutzt Du AD?

EALA FREYA FRESENA

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel