Primeros Acceso denegado cuando se accede a canalizaciones con nombre de otro sistema
-
01-10-2019 - |
Pregunta
Tengo una canalización con nombre y funciona bien Mientras que puedo acceder a él mediante un cliente que se ejecuta en mi sistema
El cliente intenta abrir el archivo con el siguiente código:
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;
}
Mientras Creación de la canalización con nombre he utilizado
lpszPipename = TEXT("\\\\.\\pipe\\iPipe01");
En lugar de myServerName
tengo .(Dot)
usado. Consigo GLE 5 (Acceso denegado) mientras ejecuta el cliente de otro sistema.
Solución
Lo primero es lo primero - ver sus permisos y cortafuegos. Casi siempre, cuando algo funciona localmente pero no en la red, es permisos.
(tenido este problema más veces de las que puedo contar!)
Otros consejos
AFAIR hubo un cambio de la seguridad del acceso anónimo a canalizaciones con nombre en Windows Vista.
Cuando se desea abrirlo (con acceso de escritura) de la cuenta anónima, puede que tenga que cambiar los atributos de seguridad de la tubería como se describe aquí .