2011-09-16 8 views
5

ho il seguente, problema molto strano con la mia applicazione WPF in ambiente di produzione:un'applicazione WPF si blocca completamente per 1 minuto

  • Il cliente segnala il programma è estremamente lento. A volte l'intera interfaccia si blocca per circa un minuto
  • Durante questo "blocco" non c'è attività della CPU. Altri programmi funzionano ancora bene
  • Il problema si verifica sempre quando l'utente si trova fisicamente dietro il PC. Cioè, quando effettuo il login usando RDP o TeamViewer il problema è molto difficile da riprodurre, anche se l'ho visto accadere
  • Per renderlo ancora più strano: questa azienda ha circa 40 PC con hardware identico. Solo in 5 di questi si verifica questo problema (PC: HP Compaq 6000 Pro Small Form Factor)

Visiterò l'azienda tra qualche giorno per accedere fisicamente al PC.

Una cosa da notare: questo programma viene eseguito in circa 1000 aziende senza problemi, il che mi fa pensare che ci sia un problema con l'hardware.

Come si diagnostica un problema del genere? Quali strumenti? Qualche consiglio o suggerimento?

+1

PC senza chipset 3D? Quindi non hanno la velocità per generare wpf? – ykatchou

+2

Mi chiedo se fare qualcosa di simile a questo: http://blogs.technet.com/b/markrussinovich/archive/2010/12/07/3373406.aspx e questo: http://blogs.technet.com/b/ markrussinovich/archive/2010/01/13/3305263.aspx aiuterebbe a diagnosticare il problema. – Ray

+0

Quale versione del framework stai usando? Che aspetto ha il back-end dell'app? Sta accedendo a risorse di rete come un database, servizi web, ecc.? c'è qualcosa nel registro eventi? – RQDQ

risposta

1

Grazie a tutti per i suggerimenti. Ho provato vari di loro. In questo caso il commento di Ray è stato molto utile, ha detto:

"Mi chiedo se fare qualcosa di simile a questo: blogs.technet.com/b/markrussinovich/archive/2010/12/07/... e questo : blogs.technet.com/b/markrussinovich/archive/2010/01/13/... potrebbe aiutare a diagnosticare il problema.- Ray 16 settembre alle 9:32 "

Il monitor di processo ha sottolineato poi quando l'app era inattivo, c'erano varie letture dal registro relative a Direct3D. Questo ha reso il driver della scheda video sospetto. Ho rimosso il driver e installato una versione più recente (l'abbiamo già provato, ma ora c'era un aggiornamento ancora più recente). Questo aggiornamento risolve il problema.

1

Ho notato un comportamento simile nel nostro laboratorio. L'app si blocca spesso, ma nessuna CPU, né attività di rete. Stesso comportamento su molti PC, sia su macchine vecchie che su macchine nuove.

Finalmente ho capito. Poiché l'app utilizza i servizi Web e, per impostazione predefinita, il proxy rileva automaticamente, l'individuazione sta bloccando tutto per diversi secondi.

Impostando il proxy come null, tutto sta andando tutto bene.

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

+0

Abbiamo avuto un problema simile relativo al proxy, tuttavia nel nostro caso non stavamo usando i servizi web. Invece qualcosa internamente stava tentando di accedere alla rete causando una sorta di timeout del proxy a causa del modo in cui l'infrastruttura di rete è stata configurata. Penso che ci sia stata un'impostazione machine.config che abbiamo modificato per risolvere il problema alla fine. – Justin

+0

Non utilizziamo i servizi Web o qualsiasi cosa relativa, quindi nel nostro caso questo non può essere il problema. ma grazie per il suggerimento –

-1

Se il problema è legato WPF si dovrebbe verificare la presenza di colli di bottiglia comuni prestazioni come associazioni di dati costosi o eventi dell'interfaccia utente che si verificano frequentemente e implicano l'elaborazione pesante nella vostra app. Un profiler è uno strumento inestimabile in questa situazione, alcuni buoni sono il profiler Red Gate Performance e AQTime di SmartBear Software. Un altro bel tool è Snoop, WPF Spy Utility che consente di analizzare l'albero degli oggetti dell'interfaccia utente. Se questo albero ha oggetti non necessari, prendi in considerazione il taglio.

Problemi correlati