当我尝试在新服务器上设置 Microsoft Exchange 2013 时收到以下错误。
我已遵循 Microsoft 指南中的所有说明: https://social.technet.microsoft.com/wiki/contents/articles/14506.how-to-install-exchange-2013-on-windows-server-2012.aspx
但是,当我运行安装程序时,设置“邮箱角色:传输服务”时会抛出此错误。
任何对此的见解都将不胜感激。
Error:
The following error was generated when "$error.Clear();
if ($RoleProductPlatform -eq "amd64")
{
$useAttachMode = $false;
$fastInstallConfigPath = Join-Path -Path $RoleBinPath -ChildPath "Search\Ceres\Installer";
$command = Join-Path -Path $fastInstallConfigPath -ChildPath "InstallConfig.ps1";
$fastDefaultDataFolderPath = Join-Path -Path $RoleBinPath -ChildPath "Search\Ceres\HostController\Data";
$dataFolderPath = $fastDefaultDataFolderPath;
if ([System.IO.Directory]::Exists($fastDefaultDataFolderPath))
{
$useAttachMode = $true;
}
else
{
if ($RoleIsDatacenter -eq $true)
{
$preferredDataFolderPathRoot = "D:\";
if ([System.IO.Directory]::Exists($preferredDataFolderPathRoot))
{
$dataFolderPath = Join-Path -Path $preferredDataFolderPathRoot -ChildPath "ExchangeSearchData";
if ([System.IO.Directory]::Exists($dataFolderPath))
{
$useAttachMode = $true;
}
}
}
}
if ($useAttachMode -eq $true)
{
&$command -action a -dataFolder $dataFolderPath -silent;
}
else
{
try
{
&$command -action i -dataFolder $dataFolderPath -silent;
}
catch
{
$errorMsg = "Failure running SearchFoundation installconfig.ps1 - " + $_.Exception.Message;
Write-ExchangeSetupLog -Error $errorMsg;
&$command -action u -silent;
try
{
if ([System.IO.Directory]::Exists($dataFolderPath))
{
[System.IO.Directory]::Delete($dataFolderPath, $true);
}
}
catch
{
$deleteErrorMsg = "Failure cleaning up SearchFoundation Data folder. - " + $dataFolderPath + " - " + $_.Exception.Message;
Write-ExchangeSetupLog -Error $deleteErrorMsg;
}
}
}
}
" was run: "Failure running SearchFoundation installconfig.ps1 - Error occurred while configuring Search Foundation for Exchange.System.ServiceModel.ProtocolException: You have tried to create a channel to a service that does not support .Net Framing. ---> System.IO.InvalidDataException: Expected record type 'PreambleAck', found '46'.
--- End of inner exception stack trace ---
Server stack trace:
at System.ServiceModel.Channels.FramingDecoder.ValidatePreambleAck(FramingRecordType foundType)
at System.ServiceModel.Channels.ClientDuplexDecoder.Decode(Byte[] bytes, Int32 offset, Int32 size)
at System.ServiceModel.Channels.ConnectionUpgradeHelper.ValidateUpgradeResponse(Byte[] buffer, Int32 count, ClientFramingDecoder decoder)
at System.ServiceModel.Channels.ConnectionUpgradeHelper.InitiateUpgrade(StreamUpgradeInitiator upgradeInitiator, IConnection& connection, ClientFramingDecoder decoder, IDefaultCommunicationTimeouts defaultTimeouts, TimeoutHelper& timeoutHelper)
at System.ServiceModel.Channels.ClientFramingDuplexSessionChannel.SendPreamble(IConnection connection, ArraySegment`1 preamble, TimeoutHelper& timeoutHelper)
at System.ServiceModel.Channels.ClientFramingDuplexSessionChannel.DuplexConnectionPoolHelper.AcceptPooledConnection(IConnection connection, TimeoutHelper& timeoutHelper)
at System.ServiceModel.Channels.ConnectionPoolHelper.EstablishConnection(TimeSpan timeout)
at System.ServiceModel.Channels.ClientFramingDuplexSessionChannel.OnOpen(TimeSpan timeout)
at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
at System.ServiceModel.Channels.ServiceChannel.OnOpen(TimeSpan timeout)
at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
at System.ServiceModel.Channels.ServiceChannel.CallOpenOnce.System.ServiceModel.Channels.ServiceChannel.ICallOnce.Call(ServiceChannel channel, TimeSpan timeout)
at System.ServiceModel.Channels.ServiceChannel.CallOnceManager.CallOnce(TimeSpan timeout, CallOnceManager cascade)
at System.ServiceModel.Channels.ServiceChannel.EnsureOpened(TimeSpan timeout)
at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)
Exception rethrown at [0]:
at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
at Microsoft.Ceres.HostController.WcfTypes.IHostController.GetHostInformation()
at Microsoft.Ceres.Exchange.PostSetup.HostControllerManager.ConnectHost(Uri uri, Boolean secure, String userIdentity, Int16 timeoutInSeconds)
at Microsoft.Ceres.Exchange.PostSetup.DeploymentManager.DeployAdminNode(String installDirectory, String localHostControllerNetTcpUrl, Int32 hostControllerPort)
at Microsoft.Ceres.Exchange.PostSetup.DeploymentManager.Install(String installDirectory, String dataDirectoryPath, Int32 basePort, String logFile, Boolean singleNode, String systemName, Boolean attachedMode)
at CallSite.Target(Closure , CallSite , Type , Object , Object , Object , Object , Object , Object , Boolean )".
答案1
您到底想安装哪个版本的 Exchange 2013?
对于全新安装,它应该是 CU16,并安装 Net Framework 4.6.2。
如果您已经安装了该版本的 Net Framework 并尝试安装早于 CU15 的版本,那么您将收到错误。
所有 Exchange CU 都是完整的产品,因此您可以使用它们进行全新安装 - 无需安装旧版本然后再进行更新。