我正在使用EWS(2.2.1.0),我需要在应用程序中阅读电子邮件以自动执行某些任务。 如果插入的凭据错误,或者如果连接丢失,我想显示一条警告消息,只需在状态栏中显示错误图标即可。
我需要区分用户凭据是否错误或只是缺少连接。
问题在于 AutodiscoverUrl()方法在两种情况下返回相同的 AutodiscoverLocalException :
找不到自动发现服务。
这很奇怪,没有道理。
我的代码如下:
try
{
exService.TraceEnabled = true;
exService.Credentials = new WebCredentials(UserSettings.Email.EmailAddress, UserSettings.Email.EmailPassword);
exService.AutodiscoverUrl(UserSettings.Email.EmailAddress, (string redirectionUrl) => {
bool result = false;
Uri redirectionUri = new Uri(redirectionUrl);
if (redirectionUri.Scheme == "https")
result = true;
return result;
});
}
catch(Exception ex)
{
Thread.Sleep(ApplicationSettings.General.WaitForNextConnectionRetry);
}
有人可以向我解释如何检查用户凭据是否错误或服务无法访问吗?
预先感谢
答案 0 :(得分:1)
测试示例链接:Get started with EWS Managed API client applications
我认为没有区分用户凭证或Uri的好方法。对于我来说,我只是添加“ try catch”来检测错误。另外,我测试了上面的示例代码,并提供了错误的密码。然后在service.AutodiscoverUrl行中发生错误。请查看跟踪消息:
或者我们可以获取跟踪消息来检测它。