2013-12-09 11 views
7

Ich benutze Lync Sdk, um Lync-Konversation innerhalb meiner eigenen wfp-Anwendung anzudocken. Das Problem ist, dass wenn ich versuche, das Gespräch wie folgt andocken:Lync NotInitializedException uncatchable auf Windows 8

public void Dock(Conversation conversation, IntPtr host) 
{ 
    try 
    { 
    ConversationWindow window = _automation.GetConversationWindow(conversation); 
    if (window.State == ConversationWindowState.Initialized) 
    { 
     window.Dock(host); 
    } 
    } 
    catch (Exception ex) 
    { 
    } 
} 

irgendwann der window.State Wechsel zwischen der Überprüfung und dem Andocken und auf Windows 8 die erzeugte Ausnahme nicht abfangbar zu sein scheint und meine Anwendung verursachen zu crashen, wo auf Windows 7 die Ausnahme nur fangen ist.

die Ausnahme ist vom Typ Microsoft.Lync.Model.NotInitializedException

+0

Können Sie die Ausnahme mit dem Application (App.cs) DispatcherUnhandledException-Ereignis abfangen? – PBelanger

+0

Nein Ich habe bereits Unhandled-Ausnahme mit der OnDispatcherUnhandledException erfasst, aber es scheint, als ob überhaupt keine Ausnahme ausgelöst wird und die App einfach abstürzt. – user1098580

+0

Können Sie den Aufrufstack des Threads posten, der die Ausnahme auslöst? Wenn es sich nicht um den Dispatcher-Thread handelt und der Thread nicht von Ihnen gestartet wurde, müssen Sie ihn möglicherweise auf der Ebene "AppDomain" abfangen. – Mitch

Antwort

0

Ich habe festgestellt, dass Lync sehr finnicky sein kann, um den Faden es führt Operationen auf. Das seltsamste Verhalten, das wir gesehen haben, ist, wenn Anrufe in dem Thread, der die Konferenz/Konversation erstellt hat, erwartet werden und stattdessen ein anderer Thread aufgerufen wird. Nicht Ausnahmen zu sehen war definitiv eine der Kuriositäten in diesen Szenarien.

Wenn ich Sie wäre, würde ich einen Thread für die Durchführung von Lync-Operationen widmen und diese Operationen dorthin stecken, wo nötig (vielleicht mit irgendwelchen Rückrufen, um die Schnittstelle schön und sauber zu machen).

Wenn Sie nur überprüfen möchten, dass Threading Ihr Problem ist, können Sie diese Anrufe immer an den WPF-Dispatcher senden, um zu bestätigen (sobald Sie bestätigt haben, müssen Sie Ihr eigenes Threading-Modell haben, wenn Sie das nicht sperren möchten UI)

0

Keine Antwort, aber ein Vorschlag. Sie könnten auch versuchen, Ihre Frage veröffentlichen hier:

Lync Client Developer Forum

Wenn Ihr Problem ein Fehler ist, wird es die Aufmerksamkeit des Produktteam zu bekommen. Wenn nicht, besteht auch die Möglichkeit, dass Ihre Frage beantwortet und das Problem gelöst wird.