Öffnen Sie ein Microsoft Word-Dokument in einem Windows-Dienst scheint zu hängen

Ich habe einen windows service in c# geschrieben, die liest den text aus word-Dokumenten (doc und docx) mit VBA Interop. Allerdings auf bestimmte Dokumente, es scheint zu hängen, auf den Aufruf der Open-Methode. Es scheint, dass das problem die Dokumente haben alle Makros in Ihnen. Die lokal installierte version von word Makros deaktiviert und der code, den ich verwenden, um das Dokument zu öffnen, ist wie folgt:

using Word = Microsoft.Office.Interop.Word;
using OfficeCore = Microsoft.Office.Core;

Word.Application m_wordApp = new Word.ApplicationClass();
Word.Document m_wordDoc = null;

object TRUE_VALUE = true;
object FALSE_VALUE = false;
object MISSING_VALUE = System.Reflection.Missing.Value;

m_wordApp.DisplayAlerts = Microsoft.Office.Interop.Word.WdAlertLevel.wdAlertsNone; //will still fail with this line removed
m_wordApp.Visible = false; //will still fail with this line removed
m_wordApp.AutomationSecurity = Microsoft.Office.Core.MsoAutomationSecurity.msoAutomationSecurityForceDisable; //will still fail with this line removed
m_wordDoc = m_wordApp.Documents.Open(ref fileNameObject, ref FALSE_VALUE, ref TRUE_VALUE, ref FALSE_VALUE, ref MISSING_VALUE, ref MISSING_VALUE, ref MISSING_VALUE, ref MISSING_VALUE, ref MISSING_VALUE, ref MISSING_VALUE, ref MISSING_VALUE, ref FALSE_VALUE, ref MISSING_VALUE, ref MISSING_VALUE, ref MISSING_VALUE, ref MISSING_VALUE);

Kann ich diese Dokumente manuell auf meiner Entwicklungs-Maschine. Weiß jemand, warum dies passiert ist oder haben weitere Fragen zu meiner Frage?

  • Nicht die version von Word auf die Produktion der Maschine Eingabeaufforderung für Makros, oder im hintergrund deaktivieren?
  • Was passiert, wenn du den code in ein normales Console-Anwendung und führen Sie diese auf der Produktions-Maschine? Einige dialog pop-up?
  • Mke - Wort sollte lautlos deaktivieren Sie die Makros. Ich fand den registry-Schlüssel entspricht, der "alle Makros ohne Benachrichtigung deaktivieren" - option in dem Wort Vertrauen Zentrum und festgelegt, dass für die Benutzer der Dienst ausgeführt wird, aber das hat nicht das problem behoben
  • wollte nur follow-up zu sehen, wenn die unten Ihre Frage beantwortet.
InformationsquelleAutor Keith K | 2010-08-04
Schreibe einen Kommentar