2011-09-16 15 views
5

tengo el siguiente, problema muy raro con mi WPF aplicación en entorno de producción:aplicación de WPF se congela por completo durante 1 minuto

  • El cliente informa que el programa es extremadamente lento. A veces, la interfaz completa se congela durante aproximadamente un minuto
  • Durante este "congelamiento", no hay actividad de la CPU. Otros programas aún funcionan bien
  • El problema siempre ocurre cuando el usuario se encuentra físicamente detrás de la PC. Es decir, cuando inicio sesión usando RDP o TeamViewer, el problema es muy difícil de reproducir, aunque lo he visto suceder
  • Para hacerlo aún más extraño: esta compañía tiene alrededor de 40 PC con hardware idéntico. Solo en 5 de ellos se produce este problema (PC: HP Compaq 6000 Pro Small Form Factor)

Visitaré la empresa en unos días para tener acceso físico a la PC.

Una cosa a tener en cuenta: este programa se ejecuta en aproximadamente 1000 empresas sin problemas, lo que me hace pensar que hay un problema con el hardware.

¿Cómo diagnosticaría este problema? ¿Qué herramientas? ¿Algún consejo o punteros?

+1

¿PC sin chipsets 3D? ¿Entonces no tienen la velocidad para generar wpf? – ykatchou

+2

Me pregunto si harías algo similar a esto: http://blogs.technet.com/b/markrussinovich/archive/2010/12/07/3373406.aspx y esto: http://blogs.technet.com/b/ markrussinovich/archive/2010/01/13/3305263.aspx ayudaría a diagnosticar el problema. – Ray

+0

¿Qué versión del marco estás usando? ¿Cómo se ve el backend de la aplicación? ¿Está accediendo a recursos de red como una base de datos, servicios web, etc.? ¿hay algo en el registro de eventos? – RQDQ

Respuesta

1

Gracias a todos por las sugerencias. Intenté varios de ellos. En este caso, el comentario de Ray fue de gran ayuda, dijo:

"Me pregunto si hacer algo similar a esto: blogs.technet.com/b/markrussinovich/archive/2010/12/07/... y esto : blogs.technet.com/b/markrussinovich/archive/2010/01/13/... ayudaría a diagnosticar el problema. - Ray Sep 16 a las 9:32 "

El Monitor de proceso señaló entonces cuando la aplicación estaba inactivo, hubo varias lecturas del registro relacionadas con Direct3D. Esto hizo sospechoso al controlador de la tarjeta de video. He eliminado el controlador e instalado una versión más nueva (lo hemos intentado antes, pero ahora había una actualización aún más nueva). Esta actualización solucionó el problema.

1

Noté un comportamiento similar en nuestro laboratorio. La aplicación se congela a menudo, pero no tiene CPU ni actividad de red. Mismo comportamiento en muchas PC, tanto en máquinas antiguas como nuevas.

Finalmente lo conseguí. Dado que la aplicación utiliza servicios web, y -por defecto- el proxy es detección "automática", el descubrimiento congela todo durante varios segundos.

Al configurar el proxy como nulo, todo va bien.

http://msdn.microsoft.com/en-us/library/fze2ytx2.aspx

+0

Tuvimos un problema similar relacionado con el proxy, sin embargo, en nuestro caso no estábamos usando servicios web. En su lugar, algo interno estaba intentando acceder a la red, causando algún tipo de tiempo de espera de proxy debido a la forma en que se configuró la infraestructura de red. Creo que hubo una configuración machine.config que cambiamos para solucionarlo al final. – Justin

+0

No usamos servicios web ni nada relacionado, por lo que en nuestro caso, este no puede ser el problema. Pero gracias por la sugerencia –

-1

Si el problema está relacionado WPF usted debe comprobar si hay cuellos de botella comunes como costosos enlaces de datos o eventos de interfaz de usuario que se producen frecuentemente e involucran el procesamiento pesado en su aplicación. Un perfilador es una herramienta invaluable en esta situación, algunos buenos son el perfilador Red Gate Performance y AQTime de SmartBear Software. Otra buena herramienta es Snoop, WPF Spy Utility que permite analizar el árbol de objetos de la interfaz de usuario. Si este árbol tiene objetos innecesarios, considere recortar.

Cuestiones relacionadas