Mise en Accès refusé lors de l'accès au canal nommé d'un autre système
-
01-10-2019 - |
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.
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 .