Lync NotInitializedException 在 Windows 8 上无法捕获

Posted

技术标签:

【中文标题】Lync NotInitializedException 在 Windows 8 上无法捕获【英文标题】:Lync NotInitializedException uncatchable on windows 8 【发布时间】:2013-12-27 03:24:37 【问题描述】:

我使用 lync Sdk 将 Lync 对话停靠在我自己的 wfp 应用程序中。 问题是,当我尝试像这样停靠对话时:

public void Dock(Conversation conversation, IntPtr host)

  try
  
    ConversationWindow window = _automation.GetConversationWindow(conversation);
    if (window.State == ConversationWindowState.Initialized)
    
      window.Dock(host);
    
  
  catch (Exception ex)
  
  

有时,window.State 在验证和停靠之间发生变化,在 Windows 8 上,生成的异常似乎无法捕获,并导致我的应用程序崩溃,而在 Windows 7 上,异常只是捕获。

异常类型为 Microsoft.Lync.Model.NotInitializedException

【问题讨论】:

您能否使用 Application (App.cs) DispatcherUnhandledException 事件捕获异常? 不,我已经使用 OnDispatcherUnhandledException 捕获了未处理的异常,但似乎根本没有引发异常并且应用程序只是崩溃了。 能贴出抛出异常的线程的调用栈吗?如果它不在调度程序线程上,并且该线程不是由您启动的,您可能必须在AppDomain 级别捕获它。 使用反汇编程序并查看该异常的定义,看它是否继承自 Exception。微软有不遵守他们告诉我们要遵守的规则的习惯。例如,捕获 SQL 异常通常需要捕获基本 sql 异常类,否则您将永远无法捕获它们。您还可以明确地捕获该异常类型 是的,我试图明确地捕获错误,但在这种情况下它不起作用。对不起我迟到的答案。我会尝试使用您建议的反汇编程序。谢谢。 【参考方案1】:

我发现 Lync 可能对它在哪个线程上执行操作非常挑剔。我们见过的一些最奇怪的行为是当调用应该在创建会议/对话的线程上进行时,而是在另一个线程上调用。没有看到异常绝对是这些场景中的怪事之一。

如果我是你,我会专门创建一个线程来执行 Lync 操作,并在需要时将这些操作插入其中(可能带有任何回调以使界面美观整洁)。

如果您只是想检查线程是否是您的问题,您可以随时将这些调用发送到 WPF 调度程序以进行确认(一旦确认,如果您不想锁定 UI,则需要拥有自己的线程模型)

【讨论】:

【参考方案2】:

没有答案,只是一个建议。您也可以尝试在此处发布您的问题:

Lync Client Developer Forum

如果您的问题是错误,则会引起产品团队的注意。如果没有,您的问题也有可能得到解答并解决。

【讨论】:

以上是关于Lync NotInitializedException 在 Windows 8 上无法捕获的主要内容,如果未能解决你的问题,请参考以下文章

Lync Ucwa 绕过 Lync 客户端

Webrtc 数据通道可以用于 Lync 和非 lync 用户之间的文件传输吗?

Lync 项目经验-43-Lync 电话效果不比传统座机差(项目!项目!项目!)

Lync Server子域启用Lync功能

使用 lync sdk 注销特定的 lync 用户

我可以使用 Lync 2010 SDK 启动 Lync 2010 客户端应用程序吗