使用RDS(终端服务器)兑换Windows Server 2019



我在RDS设置中遇到了一个奇怪的问题。当以普通用户身份运行Outlook时,我在尝试连接到会话时得到以下异常:

System.Runtime.InteropServices。COMException (0x8000FFFF):接口不支持在Redemption.IRDOSession。set_MAPIOBJECT(对象值)

但是,当以管理员身份运行Outlook(但使用相同的Exchange邮箱)时,没有错误并且一切正常。我试过启用和不启用Exchange缓存模式,这似乎没有任何区别。

c#代码是这样的:…RDOSession session = RedemptionLoader.new_RDOSession();会话。MAPIOBJECT = applicationObject.Session.MAPIOBJECT;…版本:Windows Server 2019,版本1809。Outlook 2019 MSO(16.0.10386.20017) 64位。救赎5.5.0.3218 .

欢迎有任何想法:)

不要在VSTO插件的二级线程上访问applicationObject.Session.MAPIOBJECT。将其值保存在主线程的专用变量/成员字段中,并在次线程中使用该变量来设置RDOSession.MAPIOBJECT属性-这样只有IMAPISessionMAPI接口被封送,而不是Application OOM对象(不喜欢它)。

在主线程上设置MAPIOBJECT无法修复错误。但是,删除注册表项

"HKLMSOFTWAREMicrosoftWindowsCurrentVersionPreviewHandlersMicrosoft Windows MAPI Preview Handler">

固定它。

在我最初的问题中,我忘了提到(对不起),就在Redemption异常之前,有一个"Microsoft Office outlook";弹出提示"要么没有默认的邮件客户端,要么当前的邮件客户端无法满足邮件请求"。所以我猜这是导致Remption异常的原因,即使我还没有弄清楚根本原因,或者为什么它在作为管理员运行时工作。

最新更新