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.

¿Fue útil?

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í .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top