【发布时间】:2019-11-20 23:04:18
【问题描述】:
我们目前正在从 Exchange Server 2008 迁移到 2013。我们使用自己的带有 Outlook Redemption 的编码应用程序,它无法登录到新的 Exchange Server 2013。在旧版本的应用程序中,我们使用了函数RDOSession.LogonExchangeMailbox, Exchange 2013 (RPC) 不再支持。我们更新了 Outlook Redemption 5.21 的应用程序,无法登录存储在 Exchange 2013 服务器上的邮箱。两台服务器都在线,可以收发邮件。
我们的应用程序中登录邮箱的代码类似于:
Dim objRDOSession As Redemption.RDOSession = Nothing
objRDOSession = CreateObject("Redemption.RDOSession")
objRDOSession.LogonHostedExchangeMailbox("<USERMAIL@DOMAIN>", "", "")
如果我们登录到仍存储在旧 Exchange 2008 服务器上的邮箱,一切正常。但是如果我们尝试登录新的 Exchange 2013 服务器上的邮箱,LogonHostedExchangeMailbox(...) 的调用会抛出异常:
GetAutodiscoverForEmailAddress: There are no autodiscover servers in the AD for this address
Error in WinHttpSendRequest(<DOMAIN>/autodiscover/autodiscover.xml): ERROR_WINHTTP_CANNOT_CONNECT
Error in WinHttpSendRequest(autodiscover.<DOMAIN>/autodiscover/autodiscover.xml): ERROR_WINHTTP_NAME_NOT_RESOLVED
Error in WinHttpSendRequest(autodiscover.<DOMAIN>/autodiscover/autodiscover.xml): ERROR_WINHTTP_NAME_NOT_RESOLVED
GetAutodiscoverUrlFromDns error: DNS lookup error using <IPDNSSERVER1>:DNS Server Reports Query Name Error
DNS lookup error using <IPDNSSERVER2>:DNS Server Reports Query Name Error
我们尝试为邮件服务器分配“自动发现”A-Record 和 SRV 记录“_autodiscover”:
GetAutodiscoverForEmailAddress: There are no autodiscover servers in the AD for this address
Error in WinHttpSendRequest(<DOMAIN>/autodiscover/autodiscover.xml): ERROR_WINHTTP_CANNOT_CONNECT
HTTP error 401 from https://autodiscover.<DOMAIN>/autodiscover/autodiscover.xml
Server response:
Expected HTTP_STATUS_REDIRECT, received 403
GetAutodiscoverUrlFromDns error: DNS lookup error using <IPDNSSERVER1>:DNS Server Reports Query Name Error
DNS lookup error using <IPDNSSERVER2>:DNS Server Reports Query Name Error
我们可以看到 Autodiscover 的虚拟目录,但看不到 mapi 的虚拟目录。我们不确定为什么没有显示 mapi 虚拟目录,因为命令行开关说有一个。 Virtual Directories Mapi Virtual Directory
我们使用了 Outlook 2016 中的自动配置测试,它运行良好。它显示 MapiOverHttp 作为使用的协议: Outlook 2016 Autoconfiguration test
我希望我已经为我们的问题提供了一个想法,他/她可以帮助我们连接到我们的邮箱。谢谢!
【问题讨论】:
-
如果我尝试使用用户名和密码调用
RDOSession.LogonExchangeMailbox,则会引发以下异常: IMAPISession::OpenMsgStore 中的错误:MAPI_E_LOGON_FAILED ulVersion:0 错误:无法打开信息存储。组件:MAPI 1.0 ulLowLevelError:0 ulContext:646 -
HTTP 错误 401 表示凭据错误。您的 Exchange Server 是否启用了基本身份验证?
-
我不确定我必须在哪里寻找整个 Exchange 服务器的身份验证方法。但我查看了虚拟目录。我为每个虚拟目录启用了 Basic,但错误仍然相同。虚拟目录是否是查找您询问的身份验证方法的错误位置?
-
你试过testconnectivity.microsoft.com的连接分析器吗?
-
拥有两台 Exchange 服务器肯定是个问题 - Redemtpion 执行与 testconnectivity.microsoft.com 上的 autodicover 测试相同的步骤。向 redemption (at) dimastr (dot) com 发送电子邮件,我将向您发送 Redemption 的调试版本,其中记录了其所有自动发现步骤。
标签: mapi outlook-redemption exchange-server-2013 autodiscovery