2017-09-27 1 views
0

J'ai une application console C# qui utilise le contrôle WebBrowser et imprime des documents sur une imprimante. J'ai planifié ce travail pour exécuter tous les jours en utilisant le planificateur de tâches.Application console C# avec le contrôle webBrowser défaillant avec le nom du module Faulting: MSHTML.dll

Lorsque j'exécute l'application de la console exe avec l'option "Exécuter uniquement lorsque l'utilisateur est connecté" tout fonctionne correctement. Cependant quand je le change en "Exécutez si l'utilisateur est connecté ou pas", mon processus échoue et je vois dans l'Observateur d'événements.

enter image description here

Faulting module name: MSHTML.dll, version: 11.0.9600.18792, time stamp: 0x59908408 
Exception code: 0xc0000005 
Fault offset: 0x00bd397f 
Faulting process id: 0x2768 

Pourquoi WebBrowser ne fonctionne pas avec "Run si l'utilisateur est connecté ou non" Toutes les idées? Merci à tous.

Ref: Print WebBrowser without previewing i.e. single click print

Répondre

1

Le alias contrôle du navigateur web ieframe.dll est comme une version de IE en cours d'exécution avec le processus de cadre et des processus onglet combinés en fil chargé dans l'espace mémoire de votre application. En tant que tels, ils souffrent des mêmes problèmes qu'EI. Comme IE est construit au-dessus de WinInet et que WinInet n'est pas supporté pour s'exécuter dans la session 0 (alias lorsque l'utilisateur n'est pas connecté), cela risque d'échouer. La raison en est les paramètres de chargement IE et WinInet de la ruche de registre HKEY_CURRENT_USER, qui n'est pas disponible si vous n'êtes pas connecté.

Il semble que vous ayez besoin d'un moteur de rendu HTML pour imprimer des documents.

Source (s) Je faisais partie de l'équipe de support Microsoft Premier pour IE Development.

+0

Merci Alex! Appréciez l'explication détaillée. J'explore wkhtmltopdf pour convertir html en pdf. – ProgSky