none
Deadlock in Word-Plugin RRS feed

  • Frage

  • Hallo zusammen,

    ich bin auf ein sehr seltsames Problem gestossen mit einem Wordplugin, das wir entwickelt haben damit unser Kunde direkt Dokumente aus Word mittels eines Webservices auf unser Archivierungssystem pushen kann.

    Wenn der Kunde das mit einem Dokument versucht, dass verknüpfte Dokument-Objekte enthält hängt die Ausführung eines beliebigen Webservices, ich vermute einen Thread-Deadlock.

    Zu Testzwecken habe ich die Applikation auf ein Minimum reduziert, so dass ein Klick auf den Button lediglich den Webservice aufruft, es findet keine Interaktion mit dem Word-Dokument statt:

    private void btnSaveDocumentToArchive_Click(object sender, RibbonControlEventArgs e) {

    var client = new BesServiceClient(); var besSearchProperties = client.getSearchableCriterias(new getSearchableCriterias { account = new account { login = "someLogin", password = "aPassword" language = "de", dataStoreName = "dataStoreIdentifier" } }); }

    Auch hier: Drücke ich den Button wenn ein "normales" Word-Dokument geöffnet ist läuft der Code durch wie erwartet. Der Webservice-Call wird abgesetzt und ich erhalte ein Resultat. Ist hingegen ein Dokument mit verknüpften Objekten geladen hängt das Programm im generierten Service-Referenz-Code auf der Zeile:

    return base.Channel.getSearchableCriterias(request);
    

    Als nächstes habe ich versucht einen neuen Thread zu erzeugen und dort meinen Code laufen zu lassen. Das erstaunliche Resultat war, dass mein Code - auch der komplette, nicht nur der Minimum-Code - komplett und fehlerfrei durchlief, mehrere Webservice-Calls wurden abgearbeitet und das Dokument im Archiv abgelegt. So weit so gut, nur dass anschliessend Word nicht mehr reagiert. Auch hier: Dies tritt ausschliesslich nur dann auf, wenn ein Dokument mit verknüpften Objekten geöffnet ist.

    System: Vista 32bit beim Kunden und Windows 7 Ultimate bei mir.

    Word: 2007 (12.0.668.5000)

    .NET-Framework 4.0.30319

    Im Voraus Danke für jeglichen Input.

    Roger

    Dienstag, 11. Juni 2013 09:38