Operazioni Accesso negato durante la connessione named pipe da un altro sistema
-
01-10-2019 - |
Domanda
Ho un named pipe e funziona benissimo Mentre io accedervi utilizzando un client che gira sul mio sistema
il client tenta di aprire il file utilizzando seguente codice:
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;
}
durante la creazione del tubo ho chiamato hanno utilizzato
lpszPipename = TEXT("\\\\.\\pipe\\iPipe01");
Invece di myServerName
ho .(Dot)
utilizzato. Ottengo GLE 5 (Accesso negato), mentre corro il cliente da un altro sistema.
Soluzione
Per prima cosa - controllare le autorizzazioni e firewall. Quasi sempre, quando qualcosa funziona in locale ma non sulla rete, è permessi.
(avuto questo problema più volte di quanto posso contare!)
Altri suggerimenti
AFAIR c'è stato un cambiamento di sicurezza l'accesso anonimo a named pipe in Windows Vista.
Quando si desidera aprire (con accesso in scrittura) dal account anonimo, potrebbe essere necessario modificare gli attributi di sicurezza del tubo come descritto qui .