AutodiscoverUrl 适用于除一个邮箱之外的所有邮箱
AutodiscoverUrl works for all mailboxes except one
这快把我逼疯了。我一直在使用以下 C# 代码从 on-prem Exchange 邮箱中提取邮件,使用 Exchange Web 服务:
es = new ExchangeService(ExchangeVersion.Exchange2013_SP1)
{
Credentials = new WebCredentials(ConfigurationManager.AppSettings["User"].ToString(),
ConfigurationManager.AppSettings["Password"].ToString(),
ConfigurationManager.AppSettings["Domain"].ToString())
};
//es.TraceEnabled = true;
es.AutodiscoverUrl(ConfigurationManager.AppSettings["MailBox"].ToString(), (a) => { return true; });
它对之前的四个帐户运行良好。对于我要求创建的最新帐户,我收到了可怕的错误:
The Autodiscover service couldn't be located.
我们的 Exchange 人员上下发誓,新帐户与其他帐户没有区别。但一定有不一样的地方吧?有人知道它可能是什么吗?
我激活了上面的跟踪行以在控制台中获取输出 window(代码在控制台应用程序中)。虽然我可以 post 失败帐户的整个跟踪,但这里是工作帐户和 non-working 帐户的响应 headers。 (服务器名称已更改。)
良好的帐户
<Trace Tag="AutodiscoverResponseHttpHeaders" Tid="1" Time="2018-01-29 21:24:45Z">
HTTP/1.1 200 OK
request-id: d291efce-7958-4faa-abbb-35c020f2780e
X-CalculatedBETarget: abc123.xrdom.xrcompany.firm
X-DiagInfo: abc123
X-BEServer: abc123
Persistent-Auth: true
X-FEServer: server02
Vary: Accept-Encoding
Transfer-Encoding: chunked
Cache-Control: private
Content-Type: text/xml; charset=utf-8
Date: Mon, 29 Jan 2018 21:24:44 GMT
Set-Cookie: X-BackEndCookie=S-1-5-21-3649160047-1147056544-736230609-28825=u56Lnp2ejJqBm52cnsbJzJrSns3LxtLLns3G0saax5vSzM/LxpvHm8fJypqZgYHNz87H0s/N0s3Hq83Oxc3LxcvK; expires=Wed, 28-Feb-2018 21:24:45 GMT; path=/autodiscover; secure; HttpOnly
Server: Microsoft-IIS/8.5
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
</Trace>
错误帐户:
<Trace Tag="AutodiscoverResponseHttpHeaders" Tid="1" Time="2018-01-29 21:21:49Z">
HTTP/1.1 401 Unauthorized
request-id: 99dfa551-c4c2-441b-a317-4f4fcba21a62
Server: Microsoft-IIS/8.5
WWW-Authenticate: Negotiate,NTLM,Basic realm="mail.xrcompany.com"
X-Powered-By: ASP.NET
X-FEServer: server01
Date: Mon, 29 Jan 2018 21:21:48 GMT
Content-Length: 0
</Trace>
除了 OK 与 Unauthorized 代码之外,我突然想到的是 X-REServer 的不同值。
如有任何帮助,我们将不胜感激。
当我发现问题和解决方案时,完全忘了关闭它。
创建新帐户时,未正确命名。当我要求更改名称时,只更改了显示名称而不是登录名。一旦主体名称也被更正,他们一切正常。
这快把我逼疯了。我一直在使用以下 C# 代码从 on-prem Exchange 邮箱中提取邮件,使用 Exchange Web 服务:
es = new ExchangeService(ExchangeVersion.Exchange2013_SP1)
{
Credentials = new WebCredentials(ConfigurationManager.AppSettings["User"].ToString(),
ConfigurationManager.AppSettings["Password"].ToString(),
ConfigurationManager.AppSettings["Domain"].ToString())
};
//es.TraceEnabled = true;
es.AutodiscoverUrl(ConfigurationManager.AppSettings["MailBox"].ToString(), (a) => { return true; });
它对之前的四个帐户运行良好。对于我要求创建的最新帐户,我收到了可怕的错误:
The Autodiscover service couldn't be located.
我们的 Exchange 人员上下发誓,新帐户与其他帐户没有区别。但一定有不一样的地方吧?有人知道它可能是什么吗?
我激活了上面的跟踪行以在控制台中获取输出 window(代码在控制台应用程序中)。虽然我可以 post 失败帐户的整个跟踪,但这里是工作帐户和 non-working 帐户的响应 headers。 (服务器名称已更改。)
良好的帐户
<Trace Tag="AutodiscoverResponseHttpHeaders" Tid="1" Time="2018-01-29 21:24:45Z">
HTTP/1.1 200 OK
request-id: d291efce-7958-4faa-abbb-35c020f2780e
X-CalculatedBETarget: abc123.xrdom.xrcompany.firm
X-DiagInfo: abc123
X-BEServer: abc123
Persistent-Auth: true
X-FEServer: server02
Vary: Accept-Encoding
Transfer-Encoding: chunked
Cache-Control: private
Content-Type: text/xml; charset=utf-8
Date: Mon, 29 Jan 2018 21:24:44 GMT
Set-Cookie: X-BackEndCookie=S-1-5-21-3649160047-1147056544-736230609-28825=u56Lnp2ejJqBm52cnsbJzJrSns3LxtLLns3G0saax5vSzM/LxpvHm8fJypqZgYHNz87H0s/N0s3Hq83Oxc3LxcvK; expires=Wed, 28-Feb-2018 21:24:45 GMT; path=/autodiscover; secure; HttpOnly
Server: Microsoft-IIS/8.5
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
</Trace>
错误帐户:
<Trace Tag="AutodiscoverResponseHttpHeaders" Tid="1" Time="2018-01-29 21:21:49Z">
HTTP/1.1 401 Unauthorized
request-id: 99dfa551-c4c2-441b-a317-4f4fcba21a62
Server: Microsoft-IIS/8.5
WWW-Authenticate: Negotiate,NTLM,Basic realm="mail.xrcompany.com"
X-Powered-By: ASP.NET
X-FEServer: server01
Date: Mon, 29 Jan 2018 21:21:48 GMT
Content-Length: 0
</Trace>
除了 OK 与 Unauthorized 代码之外,我突然想到的是 X-REServer 的不同值。
如有任何帮助,我们将不胜感激。
当我发现问题和解决方案时,完全忘了关闭它。
创建新帐户时,未正确命名。当我要求更改名称时,只更改了显示名称而不是登录名。一旦主体名称也被更正,他们一切正常。