SBS 2011: Unable to manage Exchange 2010 via console, shell or web interface. “WinRM cannot determine contet type of HTTP response.”

Текущая настройка:

  • SBS 2011 (Windows 2008 R2)
  • Exchange 2010 SP3, v14.03.0399.000
  • Все, вплоть до TLS 1.1, отключено на основе PCI3.1 IIS Crypto 2.0 (да, я обновил RDP, чтобы обеспечить непрерывное соединение).

Дон ' Я честно знаю, где эта проблема закралась, но вскоре после обновления / установки сертификата мы обнаружили, что, хотя мы можем получить доступ к нашим учетным записям электронной почты любым обычным способом, мы не можем администрировать сам сервер Exchange.

] Сначала подробности, затем предпринимаются шаги.

При использовании консоли управления мы получаем следующую ошибку:

[Сервер] Не удалось подключиться к удаленному серверу, появляется следующее сообщение об ошибке: Клиент WinRM не может обработать запрос. Он не может определить тип содержимого ответа HTTP от конечного компьютера. Тип содержимого отсутствует или недействителен. Для получения дополнительной информации см. Раздел справки about_Remote_Troubleshooting. Выполнялась команда «Discover-ExchangeServer -UseWIA $ true -SuppressError $ true -CurrentVersion» Версия 14.3 (сборка 123.4) »

При открытии Management Shell мы получаем следующее:

VERBOSE: Connecting to [Server]
[Server] Connecting to remote server failed with the following error message : The WinRM client ca
nnot process the request. It cannot determine the content type of the HTTP response from the destination computer. The
content type is absent or invalid. For more information, see the about_Remote_Troubleshooting Help topic.
  + CategoryInfo          : OpenError: (System.Manageme....RemoteRunspace:RemoteRunspace) [], PSRemotingTransportExc
eption
  + FullyQualifiedErrorId : PSSessionOpenFailed

Plus , при любой попытке использовать адрес обратной связи или localhost , где он запрашивает полное доменное имя, к которому я хочу подключиться, я получаю то же сообщение об ошибке.

При открытии веб-интерфейса мы получали сообщение количество ошибок.

Чтобы хоть куда-нибудь добраться, Мне пришлось «войти» в сам OWA, используя учетную запись администратора, затем «увидеть все параметры» в раскрывающемся списке параметров, а затем «Управление этой организацией». Оказавшись внутри, я получил только следующее всплывающее сообщение, когда попытался получить доступ к какой-либо функции управления:

Извините! У нас возникли проблемы с обработкой вашего запроса прямо сейчас. Повторите попытку через несколько минут.

Когда я попытался напрямую перейти в EWS, используя этот URL: https: // [localhost] /EWS/Exchange.asmx , я получил следующее сообщение об ошибке IIS :

Server Error in '/EWS' Application.
Could not load type 'System.ServiceModel.Activation.ServiceHttpModule' from assembly 'System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.TypeLoadException: Could not load type 'System.ServiceModel.Activation.ServiceHttpModule' from assembly 'System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.

Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Stack Trace:


[TypeLoadException: Could not load type 'System.ServiceModel.Activation.ServiceHttpModule' from assembly 'System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.]
   System.RuntimeTypeHandle.GetTypeByName(String name, Boolean throwOnError, Boolean ignoreCase, Boolean reflectionOnly, StackCrawlMarkHandle stackMark, IntPtr pPrivHostBinder, Boolean loadTypeFromPartialName, ObjectHandleOnStack type) +0
   System.RuntimeTypeHandle.GetTypeByName(String name, Boolean throwOnError, Boolean ignoreCase, Boolean reflectionOnly, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean loadTypeFromPartialName) +95
   System.Type.GetType(String typeName, Boolean throwOnError, Boolean ignoreCase) +64
   System.Web.Compilation.BuildManager.GetType(String typeName, Boolean throwOnError, Boolean ignoreCase) +59
   System.Web.Configuration.ConfigUtil.GetType(String typeName, String propertyName, ConfigurationElement configElement, XmlNode node, Boolean checkAptcaBit, Boolean ignoreCase) +49

[ConfigurationErrorsException: Could not load type 'System.ServiceModel.Activation.ServiceHttpModule' from assembly 'System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.]
   System.Web.Configuration.ConfigUtil.GetType(String typeName, String propertyName, ConfigurationElement configElement, XmlNode node, Boolean checkAptcaBit, Boolean ignoreCase) +550
   System.Web.Configuration.ConfigUtil.GetType(String typeName, String propertyName, ConfigurationElement configElement, Boolean checkAptcaBit) +30
   System.Web.Configuration.Common.ModulesEntry.SecureGetType(String typeName, String propertyName, ConfigurationElement configElement) +57
   System.Web.Configuration.Common.ModulesEntry..ctor(String name, String typeName, String propertyName, ConfigurationElement configElement) +57
   System.Web.HttpApplication.BuildIntegratedModuleCollection(List`1 moduleList) +173
   System.Web.HttpApplication.GetModuleCollection(IntPtr appContext) +1069
   System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext, HttpContext context, MethodInfo[] handlers) +130
   System.Web.HttpApplication.InitSpecial(HttpApplicationState state, MethodInfo[] handlers, IntPtr appContext, HttpContext context) +165
   System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext, HttpContext context) +353
   System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext) +341

[HttpException (0x80004005): Could not load type 'System.ServiceModel.Activation.ServiceHttpModule' from assembly 'System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.]
   System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +523
   System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +107
   System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +688


Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.7.3130.0 

Первым шагом для диагностики проблемы было использование EMTShooter для Exchange 2010 . При запуске с правами администратора он выдал следующий результат:

Welcome to the Exchange Management Troubleshooter!

We recommend that you run the troubleshooter after making changes to
IIS to ensure that connectivity to Exchange Powershell is unaffected.

Checking IIS Service...

Checking the Exchange Install Path variable...

Checking the Powershell Virtual Directory...

Checking the Powershell vdir SSL setting...

Checking the Powershell vdir path setting...

Checking HTTP Port 80...

Checking HTTP Port 80 Host Name...

Testing for errors...

VERBOSE: Connecting to ECLIPSESERVER.eclipse.local


[Server] Connecting to remote server failed with the following error message : The WinRM client can
    + CategoryInfo          : OpenError: (System.Manageme....RemoteRunspace:RemoteRunspace) [], PSRemotingTransportExcep
    + FullyQualifiedErrorId : PSSessionOpenFailed
The Exchange Management Troubleshooter successfully completed connecting to:

[Server]

Failed to connect to any Exchange Server in the current site.

Problem found:

Looking for error...

These are the possible causes for this error:

1. If the WSMan module entry is missing from the global modules section of the
C:\Windows\System32\Inetsrv\config\ApplicationHost.config file, as follows:

<globalModules>
           <add name="WSMan" image="C:\Windows\system32\wsmsvc.dll" />

This will result in the WSMan module displaying as a Managed module on the PowerShell virtual directory.

To correct this, make sure that the WSMan module has been registered (but not enabled) at the Server level, and has been
 enabled on the PowerShell virtual directory.  Confirm that the WSMan entry exists in the Global Section of the Applicat
ionHost.config file as shown above.


2. Remote PowerShell uses Kerberos to authenticate the user connecting.  IIS implements this Kerberos authentication met
hod via a native module. In IIS Manager, if you go to the PowerShell Virtual Directory and then look at the Modules, you
 should see Kerbauth listed as a Native Module, with the dll location pointing to \Program Files\Microsoft\Exchange Serv
er\v14\Bin\kerbauth.dll. If the Kerbauth module shows up as a Managed module instead of Native, or if the Kerbauth modul
e has been loaded on the Default Web Site level (instead of, or in addition to, the PowerShell virtual directory), you c
an experience this issue. To correct this, make sure that the Kerbauth module is not enabled on the Default Web Site, bu
t is only enabled on the PowerShell virtual directory.  The entry type of "Local" indicates that the Kerbauth module was
 enabled directly on this level, and not inherited from a parent.

3.  The Path of the Powershell virtual directory has been modified.  The PowerShell virtual directory must point to the

"\Exchange Server\v14\ClientAccess\PowerShell"

directory or you will encounter problems.

After each error is resolved, close this window and re-run the tool to check for additional problems.

[EMTS] C:\Windows\system32>

Хорошо, пока все хорошо! За исключением того, что… не все эти проблемы существовали, и никакие изменения не помогли устранить проблему.

  1. имел правильную запись.
  2. Kerberos auth был выполнен через собственный модуль, который указывал на правильную dll. К тому же, когда я вошел в IIS, развернул веб-сайт по умолчанию, щелкнул подраздел PowerShell и открыл «Аутентификация», поставщики для аутентификации Windows включали Согласование: Kerberos . Я думаю , что я мог включить эту запись проверки подлинности Windows в какой-то момент, поскольку я почти уверен, что она была отключена вначале (а расширенная защита была и до сих пор отключена). При включении или отключении ничего не меняется.
  3. Подраздел PowerShell-Proxy на веб-сайте по умолчанию имел базовые настройки слегка с самого начала: вместо того, чтобы указывать на C: \ Program Files \ Microsoft \ Exchange Server \ V14 \ ClientAccess \ PowerShell , он указывал на ... \ PowerShell-Proxy вместо этого. Когда это было исправлено, никаких изменений не произошло, за исключением того, что время ожидания консоли управления увеличилось примерно в два раза.

При проверке веб-доступа, в частности, для пути /EWS/Exchange.asmx , я выбрал внимательно посмотрите на сообщение об ошибке IIS, и нашел этот пример . К сожалению, с SBS2011 функции Windows просто перенаправили меня в диспетчер серверов, и ни сами роли, ни службы добавления ролей не могли предоставить мне никакого доступа к функциям .NET Framework 4.5 Advanced Services , чтобы все можно было включить как этот пост предложил. Единственное, что было доступно, это DotNet 3.x, и все там было установлено и активно. Мне не удалось использовать предложения PowerShell в следующем сообщении, поскольку система заявила, что 'Install-WindowsFeature' не распознается .

Я также просмотрел другие сообщения на ServerFault:

И не удалось найти решение .

Сейчас у меня только что закончились идеи. Мы будем благодарны за любую помощь в восстановлении доступа.

1
задан 28 July 2018 в 00:26
1 ответ

Did you try all of the steps described in the following articles?

Error message when you try to start Exchange Management Shell (EMS) or Exchange Management Console (EMC): "The WinRM client... cannot determine the content type of the HTTP response from the destination computer" https://support.microsoft.com/en-sg/help/2028305/error-message-when-you-try-to-start-exchange-management-shell-ems-or-e

Solution for powershell remoting error “It cannot determine the content type of the HTTP response from the destination computer…” https://oyvindnilsen.com/solution-for-powershell-remoting-error-it-cannot-determine-the-content-type-of-the-http-response-from-the-destination-computer/

1
ответ дан 3 December 2019 в 23:14

Теги

Похожие вопросы