2010-09-29 28 views
15

Me parece que las aplicaciones ClickOnce no funcionarán sin problemas con Windows Firewall.Aplicaciones ClickOnce y Windows Firewall

He estado utilizando con éxito despliegues de ClickOnce durante dos años. Esto ha llegado a un escollo ahora la empresa ha actualizado a Windows 7. configuración de cada usuario ha cambiado:

  • Firewall de Windows está habilitado en las máquinas de cada usuario
  • Los usuarios no tienen privilegios de administrador en sus máquinas.

Así es como funciona ClickOnce: Cada vez que se actualiza una aplicación ClickOnce, el archivo ejecutable se copia a un nuevo directorio. Este directorio tiene un nombre generado por la máquina. (Por ejemplo, podría implementarse en "C: \ Users \ andrew.shepherd \ AppData \ Local \ Apps \ 2.0 \ GTTG5EJB.AVG \ jc69hir.e45 \ watershedclient.exe").

Firewall de Windows, de forma predeterminada, impide que las aplicaciones acepten llamadas entrantes. Sin embargo, cuando la aplicación intenta esto por primera vez, Windows Firewall muestra un cuadro de diálogo que permite un administrador para hacer una excepción para la aplicación, dándole los privilegios que necesita.

El problema es que Windows Firewall almacena el registro de la aplicación como la ruta completa del archivo. Cada vez que se actualiza una aplicación ClickOnce, se instala en un directorio diferente. Por lo tanto, Windows Firewall lo ve como una aplicación completamente nueva. Un administrador ahora tiene que configurar el firewall para esta actualización para cada máquina en la que esté actualizado. Esto efectivamente frustra la razón por la cual usamos la tecnología ClickOnce.

Esto fue flagged as an issue en 2005, y Microsoft reconoció el problema y admitió que no había solución.

¿Se ha resuelto el problema?

+0

Actualmente estoy revisando las capacidades de ClickOnce y esto parece ser un problema importante en contra de mi recomendación, ya que nuestra aplicación se comunica con un servidor HTTP usando llamadas al servicio SOAP/XML en el puerto 80. – redcalx

+0

Ver también [Se permiten las aplicaciones Clickonce firewall] (http: // serverfault.com/questions/424379/clickonce-applications-being-allowed-through-firewall) y [Instalación de ClickOnce/Configuración del firewall] (http://social.msdn.microsoft.com/Forums/en/winformssetup/thread/97755b88-c14c -4ee4-82c0-86c159e751fe) – redcalx

+0

@locster No estoy seguro de qué hace circular circularmente preguntas sin respuesta sobre el mismo tema para ayudar a los usuarios a encontrar una respuesta a esta pregunta. – Dan

Respuesta

3

El problema es que Windows Firewall almacena el registro de la aplicación como la ruta de archivo completo . Cada vez que se actualiza una aplicación ClickOnce, se instala en un directorio diferente. Por lo tanto, Windows Firewall lo ve como como una nueva aplicación.

Un enfoque aquí es editar el nombre de la regla para que especifique el nombre del EXE solamente y no la ruta completa. P.ej. mi aplicación implementada localmente 'Hola Mundo' se instaló en este camino por ClickOnce:

C:\Users\jdoe\AppData\Local\Apps\2.0\BNYJV8NM.JT8\DGEMYJV2.ZN7\hell..tion_32be098505965508_0001.0000_ad51d60d7593998b\HelloWorld.exe 

y una regla de servidor de seguridad que se aplica sólo a "HelloWorld.exe" se puede utilizar. Sin embargo, eso crea un agujero de seguridad en que la regla se aplica a cualquier aplicación con ese nombre. Podemos definir la regla un poco más lejos especificando algunos de la ruta:

%LOCALAPPDATA%\Apps\2.0\BNYJV8NM.JT8\DGEMYJV2.ZN7\*\HelloWorld.exe 

Tenga en cuenta que también utilicé una variable de entorno, que al parecer se expande a los efectos de probar la regla de cortafuegos.

+0

Buena idea, podría dar un paso más y automatizar esto mediante la comprobación/adición de reglas sobre el inicio de la aplicación, aquí está cómo: http: // www.codeproject.com/Articles/14906/Open-Windows-Firewall-During-Installation – markmnl

+0

Intenté esto para el .exe sin ninguna ruta y con la ruta correcta debajo de% LOCALAPPDATA%. Ambos no funcionaron (Windows 8.1). –

+0

@HennoVermeulen ¿Funciona si desactiva completamente el firewall? ¿Es definitivamente el firewall el problema? – redcalx

Cuestiones relacionadas