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 上无法捕获的主要内容,如果未能解决你的问题,请参考以下文章
Webrtc 数据通道可以用于 Lync 和非 lync 用户之间的文件传输吗?