2013-12-09 19 views
7

Uso lync Sdk per ancorare la conversazione Lync all'interno della mia applicazione wfp. Il problema è che quando cerco di agganciare la conversazione in questo modo:Lync NotInitializedException non compatibile su 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) 
    { 
    } 
} 

a volte il cambiamento window.State tra la verifica e l'attracco e su Windows 8 l'eccezione generata sembra non essere catturabile e causare la mia domanda per bloccare dove su Windows 7 l'eccezione è solo prendere.

eccezione è di tipo Microsoft.Lync.Model.NotInitializedException

+0

È possibile rilevare l'eccezione utilizzando l'evento DispatcherUnhandledException Application (App.cs)? – PBelanger

+0

No, ho già acquisito un'eccezione Unhandled con OnDispatcherUnhandledException ma sembra che non sia stata sollevata alcuna eccezione e che l'app si sia bloccata. – user1098580

+0

Puoi pubblicare lo stack di chiamate del thread generando l'eccezione? Se non si trova nel thread del dispatcher e il thread non viene avviato da te, potresti doverlo prendere al livello 'AppDomain'. – Mitch

risposta

0

ho trovato che Lync può essere molto finnicky su quale filo esegue operazioni su. Alcuni dei comportamenti più strani che abbiamo visto sono le chiamate che dovrebbero essere fatte sul thread che ha creato la conferenza/conversazione e sono invece richiamate su un altro thread. Non vedere le eccezioni era sicuramente una delle stranezze in questi scenari.

Se fossi in te, dedicherei un thread all'esecuzione delle operazioni di Lync e inserisco queste operazioni nel punto desiderato (magari con qualsiasi callback per rendere l'interfaccia bella e pulita).

Se si desidera verificare che il threading sia il problema, è sempre possibile inviare queste chiamate al dispatcher WPF per confermare (una volta confermato è necessario disporre del proprio modello di threading se non si desidera bloccare il UI)

0

Nessuna risposta, ma un suggerimento. Si potrebbe anche provare a pubblicare la tua domanda qui:

Lync Client Developer Forum

Se il problema è un bug otterrà l'attenzione del team di prodotto. Altrimenti, c'è anche la possibilità che la tua domanda venga risolta e che il problema sia risolto.