Error al consumir el servicio web desde la aplicación Winform: "No se puede ejecutar un programa..."

StackOverflow https://stackoverflow.com/questions/62268

  •  09-06-2019
  •  | 
  •  

Pregunta

Tengo una aplicación winform que llama a un servicio web para buscar actualizaciones.Esto funciona en desarrollo y también funciona en todos los demás lugares donde lo he probado, pero no en la copia instalada en mi máquina (que resulta ser la misma en desarrollo).

El error es:

No se puede ejecutar un programa.El comando que se estaba ejecutando era "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\csc.exe" /noconfig /fullpaths @"C:\Documents and Settings\Giovanni.DOUBLE-AFSSZ043\Local Settings emp\squ8oock .cmdline".

El firewall está deshabilitado y busqué "C:\Documents and Settings\Giovanni.DOUBLE-AFSSZ043\Local Settings emp\squ8oock.cmdline" y no está allí.Tenga en cuenta que cada vez que intento usar el servicio web, el archivo ".cmdline" es diferente, por ejemplo, la segunda vez que lo ejecuté fue "dae8rgen.cmdline". No importa qué nombre tenga, nunca puedo encontrar el archivo.

¿Alguna sugerencia?

¿Fue útil?

Solución

El archivo ".cmdline" es un archivo generado automáticamente producido por .NET framework.La aplicación intenta compilar en tiempo real un serializador XML utilizado para analizar los datos del servicio web.

¿Ha verificado que puede ejecutar "csc.exe" desde una ventana de línea de comandos?Incluso solo escribiendo "C: Windows Microsoft.net Framework V2.0.50727 csc.exe /?" Debería obtener una lista de opciones de compilador (o debe darle un error si no tiene permisos para ejecutarlo).

¿Con qué cuenta de usuario está ejecutando esto? ¿Tiene permisos para ejecutar archivos .exe en el directorio de Windows?De manera similar, sé que dijo que esto sucede con la copia instalada en su máquina, pero ¿es posible que se esté ejecutando desde un recurso compartido de red y recibiendo permisos limitados de seguridad de acceso al código que le impedirían ejecutar ejecutables locales?

Como referencia, aquí hay un artículo de KB que muestra un error similar que puede ocurrir en ASP.NET cuando la cuenta de usuario no tiene suficientes permisos.http://support.microsoft.com/kb/315904

Otros consejos

Tuve el mismo problema y descubrí que me quedé sin memoria.

Después de comprobar el "ANTS Memory Profiler" de Redhats, descubrí que tenía una gran cantidad de memoria en el COM+ de las raíces del GC.Una búsqueda rápida en Google y me encontré aquí: msdn XmlSerializadores

Luego leí lo siguiente:

Si usa alguno de los otros constructores, se generan y nunca descargan múltiples versiones del mismo ensamblaje, lo que resulta en una fuga de memoria y un bajo rendimiento.La solución más fácil es usar uno de los dos constructores mencionados anteriormente.De lo contrario, debe almacenar en caché los ensamblajes en un hashtable ...

Después de crear una tabla hash para los serializadores, mi problema de pérdida de memoria (y bajo rendimiento) y el mensaje de error resultante como el suyo desaparecieron.

Resolví el mismo problema con un ISSReset

Si se aplica AppLocker, permita lo siguiente (agregue como excepción de ruta)

c:\windows\MICROSOFT.NET\FRAMEWORK\V2.0.50727\CSC.EXE c:\windows\MICROSOFT.NET\FRAMEWORK\V2.0.50727\CVTRES.EXE

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