[英]Keep getting "Exchange Web Services are not currently available for this request because" error?
我们有一个应用程序以交换用户身份登录并执行简单的任务,例如删除/保存/发送电子邮件等。我在 Splunk 报告中看到很多两个错误:
“Exchange Web 服务当前不可用于此请求,因为目标站点中的任何客户端访问服务器都无法处理该请求”
和
“删除电子邮件时出现问题 [项目 ID:(项目 ID 字符串)] - 在商店中找不到指定的对象。,该过程未能获得正确的属性。”
我已经读过包含以下内容很重要: service.HttpHeaders.Add("X-AnchorMailbox", MailboxToAccess); 当冒充用户时,这可能是问题所在,但是当您只是以用户身份登录时呢?
这是我们设置交换服务的代码:
public ExchangeServiceClient(ILog logger, IContentTypeHelper contentTypeHelper)
{
_logger = logger;
_contentTypeHelper = contentTypeHelper;
if (EvidenceSettings.Default.AppEmailUserName.Equals("Windows Credentials", StringComparison.OrdinalIgnoreCase))
{
_exchangeService = new ExchangeService(ExchangeVersion.Exchange2010_SP2);
_exchangeService.Url = new Uri(PartnerEvidenceSettings.Default.ExchangeServiceAddress);
}
else
{
_exchangeService = new ExchangeService(ExchangeVersion.Exchange2013_SP1);
_exchangeService.Url = new Uri(EvidenceSettings.Default.ExchangeServiceAddress);
_exchangeService.Credentials = new WebCredentials(EvidenceSettings.Default.AppEmailUserName, EvidenceSettings.Default.AppEmailPassword);
_exchangeService.TraceEnabled = true;
_exchangeService.UseDefaultCredentials = false;
}
}
这是我们何时使用该服务的示例(只是一个示例,但所有功能都非常相似):
public void DeleteMailMessage(string identifier)
{
// If this email was an attachment in another email, then only delete the container email
if (identifier != null)
{
try
{
var ids = new[] { new ItemId(identifier) };
var responseCollection = _exchangeService.DeleteItems(ids, DeleteMode.MoveToDeletedItems, null, null);
foreach (var response in responseCollection)
{
if (response.Result == ServiceResult.Error)
{
_logger.Error($"Problem deleting email [ item id: {identifier} ] - {response.ErrorMessage}");
}
}
}
catch (Exception ex)
{
_logger.Error($"Error deleting email [ item id: {identifier} ]", ex);
}
}
}
我的问题是,我们是否需要包含 HTTPHEADERS,还是其他原因导致了这个问题? 如果不是这样,我不太确定可能导致此错误的原因。
这两个错误是不同的,通常没有关系
“Exchange Web 服务当前不可用于此请求,因为目标站点中的任何客户端访问服务器都无法处理该请求”
通常这是一个路由错误,所以是的,无论是否模拟,您都应该始终包含 X-AnchorMailbox 标头。 (例如,如果您查看任何 Microsoft 邮件客户端 Outlook、OWA、Outlook Mobile,您将始终看到这些标题)。
“删除电子邮件时出现问题 [项目 ID:(项目 ID 字符串)] - 在商店中找不到指定的对象。,该过程未能获得正确的属性。”
这通常是项目错误或权限错误,例如无法访问邮箱本身或您尝试访问邮箱中的审核文件夹等内容。这也可能意味着相关项目已在邮箱中移动。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.