Question

J'ai nommé pipe et il fonctionne très bien si j'accéder à l'aide d'un client qui fonctionne sur mon système

Le client tente d'ouvrir le fichier en utilisant le code suivant:

LPTSTR lpszPipename = TEXT("\\\\smyServerName\\pipe\\iPipe01"); 

      hPipe = CreateFile( 
         lpszPipename,   // pipe name 
         GENERIC_READ |  // read and write access 
         GENERIC_WRITE, 
         0,              // no sharing 
         NULL,           // default security attributes
         OPEN_EXISTING,  // opens existing pipe 
         0,              // default attributes 
         NULL);     


      if (hPipe != INVALID_HANDLE_VALUE) 
         break; 

      // Exit if an error other than ERROR_PIPE_BUSY occurs. 

      if (GetLastError() != ERROR_PIPE_BUSY) 
      {
         _tprintf( TEXT("Could not open pipe. GLE=%d\n"), GetLastError() ); 
         return -1;
      }

lors de la création du canal nommé j'ai utilisé

lpszPipename = TEXT("\\\\.\\pipe\\iPipe01"); 

Au lieu de myServerName Je l'ai utilisé .(Dot). Je reçois GLE 5 (Accès refusé) alors que je lance le client d'un autre système.

Était-ce utile?

La solution

Tout d'abord - vérifier vos autorisations et pare-feu. Presque toujours, quand quelque chose fonctionne localement, mais pas sur le réseau, il est des autorisations.

(eu ce problème plusieurs fois que je peux compter!)

Autres conseils

AFAIR il y avait un changement de la sécurité de l'accès anonyme aux canaux nommés dans Windows Vista.
Lorsque vous voulez ouvrir (avec accès en écriture) à partir du compte anonyme, vous devrez peut-être modifier la sécurité de la conduite des attributs comme décrit ici .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top