Microsoft Dynamics 365 邮箱中出现“Http 服务器返回的禁止异常”错误

本文针对在 Dynamics 365 中的邮箱记录上选择“测试 & 启用邮箱”按钮时出现的错误提供了解决方案。

适用于:Microsoft Dynamics 365
原始 KB 编号: 4483440

症状

在 Dynamics 365 中的邮箱记录上选择“测试 & 启用邮箱”按钮时,测试结果部分将显示“失败”,并记录以下警报:

“电子邮件”你的邮箱现在已连接到 Dynamics 365“无法发送,因为在与电子邮件服务器建立安全连接时出错。 邮箱 [邮箱名称] 未同步。 已通知电子邮件服务器配置文件Microsoft Exchange Online的所有者。
Email服务器错误代码:Http 服务器返回了禁止异常。”

如果选择“ 详细信息”,则会显示以下其他详细信息:

“错误:System.Net.WebException:请求失败,HTTP 状态为 403:禁止访问。
at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse (SoapClientMessage 消息、WebResponse response、Stream responseStream、Boolean asyncCall)
at System.Web.Services.Protocols.SoapHttpClientProtocol.EndInvoke (IAsyncResult asyncResult)
at Microsoft.Crm.Asynchronous.EmailConnector.ExchangeServiceBinding.EndCreateItem (IAsyncResult asyncResult)
at Microsoft.Crm.Asynchronous.EmailConnector.ExchangeOutgoingEmailProvider.EndCreateItem () ”

原因

Dynamics 365使用 Exchange Web Services (EWS) 请求与 Microsoft Exchange 通信。 如果禁用 EWS,则会发生此错误。 以下内容是 Exchange 中可能禁用或限制 EWS 的一些可能方式:

  1. 邮箱的 EWS 已禁用
  2. 为整个组织禁用 EWS
  3. 设置为 EwsApplicationAccessPolicyEnforceAllowList,不允许the EwsAllowList从 Dynamics 365 (CRM) 进行访问。
  4. 设置为 EwsApplicationAccessPolicyEnforceBlockList,并the EwsBlockList包括Dynamics 365 (CRM) 。

解决方案

如果问题仅针对某些邮箱发生,检查是否为邮箱禁用了 EWS:

  1. 首先检查,查看是否已为邮箱禁用 EWS。 使用以下 PowerShell 命令:

    Get-CASMailbox <mailbox-alias> | ft EwsEnabled
    
  2. 如果 EwsEnabled 设置为 False,请使用以下 PowerShell 命令为邮箱启用 Exchange Web Services (EWS) :

    Set-CASMailbox <mailbox-alias> -EwsEnabled $True
    

    重要

    运行此命令后,设置更改可能需要长达 120 分钟才能生效。

如果所有邮箱都出现此问题,检查是否在组织级别禁用了 EWS,或者是否正在使用 EwsAllowList 来限制允许的 EWS 流量。

  1. 使用以下 PowerShell 命令查看是否配置了任何 EWS 设置:

    Get-OrganizationConfig |ft Name, EwsEnabled,EwsApplicationAccessPolicy,EwsBlockList,EwsAllowList
    
  2. 验证 EwsEnabled 未设置为 False。 以下命令可用于将 EwsEnabled 设置为 True (如果当前设置为 False):

    Set-OrganizationConfig -EwsEnabled $True
    

    重要

    运行此命令后,设置更改可能需要长达 120 分钟才能生效。

  3. 如果 EwsApplicationAccessPolicy 设置为 EnforceAllowList,并且 EwsAllowList 不包含 CRM (示例:CRM/*) 的值,这将阻止Dynamics 365 (CRM) 能够与 Exchange 通信。 使用以下命令更新列表以包括 CRM/* 以及要允许 (<以下示例中的 PreviousAllowList> 的任何其他应用程序) :

    Set-OrganizationConfig -EwsApplicationAccessPolicy:EnforceAllowList -EwsAllowList:CRM/*,<PreviousAllowedList>
    

    重要

    运行此命令后,设置更改可能需要长达 120 分钟才能生效。

  4. 如果 EwsApplicationAccessPolicy 设置为 EnforceBlockListEwsAllowList 包含 CRM (示例:CRM/*) 的值,这将阻止Dynamics 365 (CRM) 能够与 Exchange 通信。 使用以下命令更新列表以不再包含 CRM:

    Set-OrganizationConfig -EwsApplicationAccessPolicy:EnforceBlockList -EwsBlockList:<PreviousBlockList WITH CRM REMOVED>
    

    重要

    运行此命令后,设置更改可能需要长达 120 分钟才能生效。

更多信息

有关使用 PowerShell 更改 Exchange 设置和控制对 EWS 的访问的详细信息,请参阅以下文章: