El programa que se ejecuta desde una carpeta donde no se puede acceder a una carpeta principal no podrá usar la capa TCP

El programa que se ejecuta desde una carpeta donde no se puede acceder a una carpeta principal no podrá usar la capa TCP

Este problema nos ha llevado a mí y a nuestro departamento de TI de nuestra empresa muchas horas identificarlo.

El problema sólo aparece en Windows Server 2008, Windows 7 y Windows 8. En Windows XP o Windows Server 2003 no tenemos problemas.

Estamos teniendo un programa que hemos desarrollado internamente en nuestra empresa. El programa funciona bien y el problema no es específico de este programa.

El programa utiliza localhost para comunicarse con otros programas que se ejecutan en la computadora mediante servicios web. El problema que nos ocupa es que esta comunicación no funciona si el programa está ubicado en la carpeta de inicio del usuario.

Después de haber dedicado muchas horas a descubrir por qué ocurre esto, recientemente nos dimos cuenta de que el problema desaparece si el usuario tiene acceso a todas las carpetas principales en la ruta UNC del archivo ejecutable.

Entonces, si la unidad principal está montada en H: = \SomeServer\hdrive$\SomeUser y el usuario no tiene acceso a \SomeServer\hdrive$ entonces nuestro programa obtiene errores de TCP y los servicios web no funcionarán.

Si el usuario obtiene solo el permiso "Mostrar el contenido de la carpeta" en esa ruta, entonces los servicios web funcionan.

Por lo demás, el programa funciona bien. Hemos comprobado que todos los archivos dll están vinculados correctamente y que no se producen otros errores.

Esto parece ser algo que está haciendo el sistema operativo. ¿Alguien sabe por qué pasa esto?

Respuesta1

En Windows 7 y versiones posteriores, determinadas carpetas están protegidas de forma predeterminada. Tengo entendido que esto es por razones de seguridad. es decir. Hace que sea más difícil para el programa A modificar en secreto un dll utilizado por el programa B.

A menudo, descubrí que si hago clic derecho en el programa en cuestión y lo ejecuto "como administrador", funcionará bien. No estoy seguro de que eso funcione en tu caso.

información relacionada