2010-11-10 12 views
0

J'ai écrit une application qui utilise Outlook et Redemption pour effectuer des opérations de synchronisation avec le serveur Exchange sur IMAP. Cela fonctionne très bien jusqu'à ce qu'il essaie de sortir. Il exécute la toute dernière ligne de code, qui est l'impression "Service sortant" très bien, mais cette ligne se produit après l'appel Application.Quit() que je fais sur Outlook. Et l'icône Outlook 2010 est toujours assis dans la barre des tâches! Ma question est: Comment puis-je forcer Outlook à fermer (même de manière rapide et sale) afin que mon application soit stoppée, sans attendre que Outlook finisse de fermer, ce qui parfois ne se fait jamais? (Il attend un utilisateur à un clic droit sur l'icône de la barre des tâches et sélectionnez « Exit » au lieu)Forcer la fermeture d'un service IMAP .Net

TIA Dave --Trindaz sur Fedang # Exchange intégration

Répondre

0

Je ne l'ai jamais utilisé la Rédemption, mais semble être un outil qui aide à automatiser Outlook d'une certaine manière, et chaque fois que vous automatisez une application Office, vous devez toujours faire attention à tout effacer correctement, sinon il sera laissé avec une référence suspendue et peut ne pas s'arrêter correctement. Donc, à moins que votre utilisation de Redemption change les choses d'une certaine façon, je suggère que vous pourriez avoir besoin d'appeler Marshal.ReleaseComObject sur toute référence à quelque chose dans Outlook que vous utilisez.

Pour être en mesure de le faire, vous devez veiller à ce que vous stockez toujours toutes les références que vous avez accès quelque part, il faut donc éviter de faire des appels imbriqués comme:

SomeOutlookObject.SomeInnerOutLookObject.SomeMethod 

Et au lieu faire

Object innerObj = SomeOutlookObject.SomeInnerOutLookObject; 
innerObj.SomeMethod 

De cette façon, vous pouvez également appeler ReleaseComObject sur le innerObj.