0

Nous sommes tombés sur le bug de l'après-midi d'habitude vendredi ...IE 7 intégré dans l'application WinForm gèle toute application Winform

Nous avons une .net 2.0 application Winform qui utilise le contrôle WebBrowser (déployée sur l'édition de Windows XP Tablet, avec le dernier IE 7). À un certain point dans une page, nous sommes en train de cacher une div et de définir une valeur de zone de texte en utilisant du javascript. À ce stade, l'opération fonctionne (le texte apparaît dans la zone de texte), mais la fenêtre complète est maintenant gelée. Réduire/maximiser la fenêtre ne répond pas, etc: il semble que les messages Windows ne sont plus en cours de traitement.

Si je clique n'importe où en dehors de cette fenêtre (barre des tâches, autre fenêtre ouverte), la fenêtre précédemment gelée fonctionne maintenant correctement. Je refais la même opération, le verrouillage se produit à nouveau. Ceci est systématique et peut être reproduit sur cette machine perticular n'importe quand.

Nous ne pouvons pas le reproduire en interne en utilisant une variété de machines.

Sur la même machine, si je navigue sur la même page et que j'effectue la même opération directement avec IE 7, tout fonctionne correctement ... très frustrant.

Une idée de ce qui pourrait causer ce problème? quoi vérifier? Apparemment, aucune erreur javascript n'est levée par la page.

grâce à des idées ou des pointeurs

Répondre

1

Le navigateur Web .NET 2.0 pour Windows Forms est bogué; Nous avons rencontré tellement de bogues différents dans l'implémentation, y compris des erreurs d'interopérabilité qui provoquent le crash d'AccessViolationExceptions, que nous nous éloignons maintenant de l'IE embarqué et utilisons Mozilla. Je déteste être pessimiste, mais le contrôle IE embarquable est simplement indésirable.

Vous voudrez peut-être examiner le contrôle Mono.WebBrowser. Même interface de programmation gérée, mais implémentée avec le moteur Gecko de Firefox et une implémentation alternative avec le moteur WebKit de Chrome et Safari. Une autre alternative consiste à ignorer le wrapper .NET 2.0 WebBrowser et à utiliser le contrôle ActiveX IE directement via les interfaces mshtml. Malheureusement, il y a même quelques bogues dans le wrapper mshtml généré.

Bottom line: Je recommanderais Mono.WebBrowser.

Questions connexes