我正在尝试连接到我们的Exchange 2007服务器。我放置了很多异常处理来捕获任何错误,并将它们放入应用程序日志中。首先,我有一个确保用户可以使用提供的凭据访问交换服务的功能:
公共布尔Logon()
{
字符串pwd = / *获取密码* /;
尝试
{
service.Credentials =新的WebCredentials(
用户名+“ @ our.domain”,pwd);
service.FindItems(WellKnownFolderName.Outbox,new ItemView(1));
}
捕获(异常)
{
返回false;
}
返回true;
}
如果此函数返回false,则在应用程序日志中放置一个条目,报告用户登录失败,然后该过程终止。
如果该函数成功,那么我们将其称为“函数”。它会为用户提供所有在接下来的10分钟内开始的约会:
受保护的列表GetFutureAppointments()
{
尝试
{
SearchFilter.IsGreaterThanOrEqualTo startTime =
新的SearchFilter.IsGreaterThanOrEqualTo(
AppointmentSchema.Start,DateTime.Now);
SearchFilter.IsLessThanOrEqualTo endTime =
新的SearchFilter.IsLessThanOrEqualTo(
AppointmentSchema.Start,DateTime.Now.AddMinutes(10));
SearchFilter过滤器=
新的SearchFilter.SearchFilterCollection(LogicalOperator.And
new SearchFilter [] {startTime,endTime});
FindItemsResults结果=
service.FindItems(
WellKnownFolderName.Calendar,过滤器,新的ItemView(10));
返回新的List(results.Items);
}
捕获(异常e)
{
Utilities.LogException(e);
返回null;
}
}
如您所见,该函数将捕获所有异常并将其记录下来。在日志中显示的是Request failed. The remote server returned an error: (401) Unauthorized.
堆栈跟踪指向service.FindItems()
函数。
因此,我有些困惑,可能对交换或Web服务或其他任何知识都不了解。登录函数返回true,但是随后授权失败。有什么建议么?
最佳答案
您的凭据有可能使您可以访问发件箱,但不能访问日历?