將信箱從 Microsoft 365 移回內部部署環境時,移動作業會失敗

注意事項

不再支援 2010 年 Microsoft Exchange Server Exchange 管理主控台 中包含的混合式設定精靈。 因此,您不應該再使用舊的混合式設定精靈。 請改用可在 https://aka.ms/HybridWizard取得的 Microsoft 365 混合式設定精靈。 如需詳細資訊,請參閱 適用於 Exchange 2010 的 Microsoft 365 混合式設定精靈。

問題

請試想下列案例:

  • 您已在 Microsoft 365 和內部部署 Microsoft Exchange Server 環境中混合部署 Microsoft Exchange Online。
  • 您先前已將信箱從內部部署環境移至 Microsoft 365。
  • 您嘗試將相同的信箱從 Microsoft 365 下架或移回內部部署環境。

在此案例中,作業會達到95%,然後失敗。

發生這種情況時,當您存取 /EWS/mrsproxy.svc 連結時,會在內部部署環境中的下列記錄檔中產生「HTTP 400」錯誤:

  • Internet Information Services (IIS) 記錄檔
  • HTTPERR) 檔案 (HTTP 錯誤記錄檔

當您使用 Windows PowerShell 連線到 Microsoft 365,然後執行Get-MoveRequestStatisticsMailboxID -IncludeReport | Export-CliXml FileName.xml命令時,XML 報表的堆疊追蹤區段會顯示下列專案:

<S N="StackTrace"> at
Microsoft.Exchange.MailboxReplicationService.CommonUtils.CallService
(Action serviceCall, String epAddress, VersionInformation
serverVersion)_x000A_ at
Microsoft.Exchange.MailboxReplicationService.MailboxReplicationProxyClient.CallServiceWithTimeout
(TimeSpan timeout, Action serviceCall)_x000A_ at Microsoft.Exchange.MailboxReplicationService.RemoteDestinationFolder.Microsoft.Exchange.MailboxReplicationService.IDestinationFolder.SetRules(RuleData[] rules)_x000A_ at Microsoft.Exchange.MailboxReplicationService.DestinationFolderWrapper.<;>;c__DisplayClass31.<;Microsoft.Exchange.MailboxReplicationService.IDestinationFolder.SetRules>;b__30()_x000A
at Microsoft.Exchange.MailboxReplicationService.ExecutionContext.Execute
(Action operation)_x000A_ at Microsoft.Exchange.MailboxReplicationService.DestinationFolderWrapper.Microsoft.Exchange.MailboxReplicationService.IDestinationFolder.SetRules(RuleData[] rules)_x000A_ at
Microsoft.Exchange.MailboxReplicationService.FolderRecWrapper.WriteRules
(IDestinationFolder targetFolder, Action`1 reportBadItemsDelegate)
_x000A_ at
Microsoft.Exchange.MailboxReplicationService.MailboxCopierBase.CopyFolderProperties
(FolderRecWrapper folderRec, ISourceFolder sourceFolder,
IDestinationFolder destFolder, FolderRecDataFlags dataToCopy)
_x000A_ at Microsoft.Exchange.MailboxReplicationService.MailboxMover.<;>;c__DisplayClass2.<;>;c__DisplayClass4.<;FinalSyncCopyAllFolders>;b__1()_x000A_ at
Microsoft.Exchange.MailboxReplicationService.ExecutionContext.Execute
(Action operation)_x000A_ at Microsoft.Exchange.MailboxReplicationService.MailboxMover.<;>;c__DisplayClass2.<;FinalSyncCopyAllFolders>;b__0
(FolderRecWrapper folderRec, EnumFolderContext ctx)_x000A_ at
Microsoft.Exchange.MailboxReplicationService.FolderMap.EnumSingleFolder
(FolderRecWrapper folderRec, EnumFolderContext ctx, EnumFolderCallback callback, EnumHierarchyFlags flags)_x000A_ at Microsoft.Exchange.MailboxReplicationService.FolderMap.EnumSingleFolder(FolderRecWrapper folderRec, EnumFolderContext ctx, EnumFolderCallback callback, EnumHierarchyFlags flags)_x000A_ at Microsoft.Exchange.MailboxReplicationService.FolderMap.EnumSingleFolder(FolderRecWrapper folderRec, EnumFolderContext ctx, EnumFolderCallback callback, EnumHierarchyFlags flags)_x000A_ at Microsoft.Exchange.MailboxReplicationService.MailboxMover.FinalSyncCopyAllFolders()
_x000A_ at
Microsoft.Exchange.MailboxReplicationService.MoveBaseJob.<;FinalSync>;b__4d
(MailboxMover mbxCtx)_x000A_ at
Microsoft.Exchange.MailboxReplicationService.MoveBaseJob.ForeachMailboxContext
(Action`1 del)_x000A_ at
Microsoft.Exchange.MailboxReplicationService.MoveBaseJob.FinalSync(Object[] wiParams)_x000A_ at Microsoft.Exchange.MailboxReplicationService.CommonUtils.CatchKnownExceptions
(Action actionDelegate, Action`1 failureDelegate)</S>

原因

如果 Mailbox Replication Proxy (MRSProxy) 服務的 SetRules 呼叫失敗,就會發生此問題。 如果移動的信箱包含大量的垃圾郵件規則和用戶規則,也可能會發生此問題。

解決方案

若要解決此問題, MRSProxyHttpsBinding 請在內部部署環境中每個用戶端存取伺服器的 Web.config 檔案中變更設定值和 MRSProxyWSSecurityBinding 設定值,該伺服器位於信箱移動時所通過的路徑中。 如果要執行這項操作,請依照下列步驟執行:

  1. 在用戶端存取伺服器上,找出並開啟 Web.config 檔案。

    注意事項

    在 Exchange Server 2010 中,Web.config 檔案位於下列資料夾:\Program Files\Microsoft\Exchange Server\V14\ClientAccess\exchweb\ews

  2. 將設定和 MRSProxyHttpsBinding 設定的 MRSProxyWSSecurityBinding 特定值從 1048576 變更 為 8388608。 然後,儲存盤案。

    下列範例顯示 Web.config 的這個區段在變更之後看起來的樣子:

    <binding name="MRSProxyHttpsBinding"> <reliableSession />
    <textMessageEncoding>
    <readerQuotas maxDepth="32"
    maxStringContentLength="8388608"
    maxArrayLength="8388608"
    maxBytesPerRead="4096"
    maxNameTableCharCount="16384" />
    </textMessageEncoding>
    <httpsTransport authenticationScheme="Negotiate"
    maxReceivedMessageSize="8388608" />
    </binding>
    <binding name="MRSProxyWSSecurityBinding">
    <reliableSession />
    <textMessageEncoding>
    <readerQuotas maxDepth="32"
    maxStringContentLength="8388608"
    maxArrayLength="8388608"
    maxBytesPerRead="4096"
    maxNameTableCharCount="16384" />
    </textMessageEncoding>
    <httpsTransport authenticationScheme="Anonymous"
    maxReceivedMessageSize="8388608" />
    </binding>  
    
  3. 使用 iisreset 命令重新啟動 IIS。

是否仍需要協助? 前往 Microsoft Community