Quelle est la bonne façon de configurer un canal nommé en C# sur un réseau?C# 3.5 - Connecter un canal nommé à travers le réseau
Actuellement, j'ai deux machines, 'client' et 'serveur'.
serveur met en place sa conduite de la manière suivante:
NamedPipeServerStream pipeServer = new NamedPipeServerStream(
"pipe",
PipeDirection.InOut,
10,
PipeTransmissionMode.Byte,
PipeOptions.None)
pipeServer.WaitForConnection();
//... Read some data from the pipe
Le client établit sa connexion de la manière suivante:
NamedPipeClientStream pipeClient = new NamedPipeClientStream(
"server",
"pipe",
PipeDirection.InOut);
pipeClient.Connect(); //This line throws an exception
//... Write some data to the pipe
La machine « serveur » sont accessibles sur le réseau en allant sur "\\ serveur".
Chaque fois que j'exécute le programme, j'obtiens une exception System.UnauthorizedAccessException qui indique "L'accès au chemin est refusé". Le code fonctionne correctement lorsque j'exécute le serveur et le client sur ma machine locale et que je tente de me connecter à "." avec le client.
C'est Bizz Server, pas Windows doc. http://msdn.microsoft.com/en-us/library/aa365590(VS.85).aspx indique que cela devrait fonctionner! – weismat
Cela peut être une limitation WCF. Les tuyaux nommés dans Windows (comme celui que la personne demande) peuvent fonctionner à travers les réseaux. De: http://msdn.microsoft.com/en-us/library/system.io.pipes.namedpipeserverstream.aspx « Les canaux nommés peuvent être utilisés pour la communication interprocessus localement ou sur un réseau » Il y a quelques limitations - Limites locales seulement (donc au moment où vous frappez un routeur, il s'arrête) - Les anciennes versions de Windows (comme 2000) limitent à 10 connexions - Les tuyaux anonymes sont à une seule machine –