在混合部署中无法接收 FederationInformation 或 405 方法不允许

原始 KB 编号: 2773628

注意

Microsoft Exchange Server 2010 Exchange 管理控制台中包含的混合配置向导不再受支持。 因此,不应再使用旧的混合配置向导。 请改用 Microsoft 365 混合配置向导。 有关详细信息,请参阅 适用于 Exchange 2010 的 Microsoft 365 混合配置向导

问题

在 Microsoft 365 和本地 Exchange Server 2010 环境中的Exchange Online混合部署中,会遇到以下一个或多个症状:

  • 使用“自动发现”选项从 Microsoft 365 组织创建组织关系时,会收到以下错误消息:

    无法从外部组织接收联合信息

  • 当 Microsoft 365 用户尝试查找本地用户的忙/闲信息时,不会显示忙/闲信息。

  • 运行 Get-FederationInformation Windows PowerShell cmdlet 时,会收到以下错误消息:

    HTTP 错误
    不允许使用 405 方法

在本地 Exchange 2010 混合服务器文件夹中查看 Internet Information Services (IIS) 日志 C:\Inetpub\logs 时,会看到与关联终结点的连接出现 405 错误。 终结点如下所示:

  • 邮箱移动终结点为 MrsProxy.svc。
  • 自动发现终结点为 Autodiscover.svc。

例如,IIS 日志中的错误项可能如下所示:

<日期><时间> 10.10.10.1 POST /EWS/mrsproxy.svc - 443 test\admin 10.10.10.12 - 405 0 1 15

原因

如果 IIS 配置缺少 svc 集成处理程序映射,则会出现此问题。 以下屏幕截图显示了 IIS 中 svc 集成处理程序映射的示例:

IIS 配置的窗口的屏幕截图。

解决方案

若要解决此问题,请在 Internet Information Services (IIS) Manager 中,检查服务器级别的处理程序映射:

  • 如果缺少 svc 集成处理程序映射,请转到 方法 1
  • 如果存在 svc 集成处理程序映射,请转到 方法 2

方法 1:在 IIS 中重新安装处理程序映射

注意

在执行这些步骤之前,请备份 IIS 配置。

运行 ServiceModelReg.exe -r 命令以重新安装 IIS 中的处理程序映射。 为此,请按照下列步骤操作:

  1. 在 Exchange 2010 混合服务器上,打开命令提示符窗口,然后导航到以下文件夹:

    C:\Windows\Microsoft.Net\Framework\v3.0\Windows Communication Foundation

  2. 键入以下命令,然后按 Enter:

    ServiceModelReg.exe -r
    

    注意

    运行此命令后,可能需要重启 IIS。

方法 2:检查服务器级别的处理程序映射

  1. 在 IIS 管理器中,展开 “默认网站”,然后选择“自动发现虚拟目录”。

  2. 打开处理程序映射。

    • 如果存在 svc 集成处理程序映射,请转到步骤 8。
    • 如果缺少 svc 集成处理程序映射,请转到步骤 3。
  3. 备份自动发现虚拟目录中的 web.config 文件。

  4. “操作 ”窗格中,单击“ 还原到父级”,然后单击“ ”进行确认。

  5. 确认自动发现虚拟目录中存在 svc 集成处理程序映射。

  6. 重置自动发现虚拟目录。 为此,请打开 Exchange 命令行管理程序,然后运行以下命令:

    Remove-AutodiscoverVirtualDirectory "<ServerName>\Autodiscover (Default Web Site)"
    
    New-AutodiscoverVirtualDirectory -WebSiteName "Default Web Site" -WSSecurityAuthentication:$True
    
  7. 复制备份 web.config 文件中的处理程序,然后将其粘贴到 web.config 文件中。 处理程序应位于 web.config 文件的 system.webServer 和 </system.webServer> 标记中<。>

    web.config 文件至少应包含以下处理程序:

    <handlers>
          <add name="AutodiscoverAsmxHandler" path="*.asmx" verb="*" type="System.ServiceModel.Activation.HttpHandler,
    System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="integratedMode,runtimeVersionv2.0" />
          <add name="AutodiscoverXMLHandler" path="*.xml" verb="POST" type="System.ServiceModel.Activation.HttpHandler, System.ServiceModel,
    Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="integratedMode,runtimeVersionv2.0" />
          <add name="AutodiscoverDiscoveryLegacyHandler" path="*.xml" verb="GET" type="Microsoft.Exchange.Autodiscover.WCF.LegacyHttpHandler,
    Microsoft.Exchange.Autodiscover, Version=14.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" preCondition="integratedMode,runtimeVersionv2.0" />
          <add name="AutodiscoverDiscoveryHandler" path="*.svc" verb="GET" type="Microsoft.Exchange.Autodiscover.WCF.AutodiscoverDiscoveryHttpHandler,
    Microsoft.Exchange.Autodiscover, Version=14.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" preCondition="integratedMode,runtimeVersionv2.0" />
        </handlers>
    
  8. 重新启动 IIS。 为此,请在命令提示符下运行 iisreset /noforce

更多信息

遇到此问题时,你可能会注意到,与客户端访问服务器 (CAS) 的其他连接(例如,通过自动发现服务设置用户配置文件时)不受影响。 这是因为此操作不使用 svc 终结点。 在这种情况下,使用 svc 终结点的任何连接都不起作用,但其他终结点通常不受影响。

仍然需要帮助? 转到 Microsoft 社区Exchange TechNet 论坛