Поделиться через


Новые сценарии развертывания портала самообслуживания и устранение неполадок

 

Опубликовано: Март 2016

Применимо к:System Center 2012 R2 Service Manager

Новый портал самообслуживания представляет собой веб-приложение HTML5 на базе ASP.NET MVC Razor. Во время установки это веб-приложение настраивается для подключения непосредственно к службе SDK, запущенной в обозревателе серверов Service Manager. Базовая и только что настроенная установка портала самообслуживания работает согласно следующей схеме.

sm-ssp-scenario-01

Данные передаются между разными компонентами в следующей последовательности.

  1. Пользователи вводят URL-адрес веб-приложения в своем браузере для доступа к порталу самообслуживания.

  2. ASP.NET создает новый экземпляр для пользователя и пытается подключиться к службе SDK, указанной во время установки, в контексте данного пользователя.

  3. Служба SDK обращается к базе данных Service Manager, выполняя чтение и запись данных.

System_CAPS_ICON_important.jpg Важно


При установке нового портала на том же сервере, где находится старый портал SharePoint: этот выпуск портала самообслуживания не совместим со старым порталом самообслуживания (и не поддерживает его обновление) в System Center Service Manager 2010, или System Center Service Manager 2010 с пакетом обновления 1 (SP1), или Service Manager 2012 R2. Перед развертыванием нового портала самообслуживания в System Center 2012 Service Manager необходимо удалить старые версии портала самообслуживания.

Подготовка к развертыванию

Просмотрите следующий раздел со сведениями о подготовке к развертыванию.

Требования к оборудованию

Серверы System Center 2012 R2 Процессор (мин.) Процессор (рек.) ОЗУ (мин.) ОЗУ (рек.) Место на жестком диске (мин.) Место на жестком диске (рек.)
Портал самообслуживания + дополнительный Service Manager (рекомендуется *) 8-ядерный ЦП с тактовой частотой 2,66 ГГц 8-ядерный ЦП с тактовой частотой 2,66 ГГц 16 Гб 32 Гб 80 Гб 80 Гб
Портал самообслуживания (автономно) 4-ядерный ЦП с частотой 2,66 ГГц 8-ядерный ЦП с тактовой частотой 2,66 ГГц 8 Гб 16 Гб 80 Гб 80 Гб

* Приведенные выше требования обеспечивают параллельный доступ для 500 пользователей с приемлемым временем отклика, включая среднюю продолжительность операций чтения менее 3 секунд и операций записи менее 5 секунд при условии, что соотношение операций чтения и записи составляет 80:20. Для более крупных развертываний см. раздел Развертывание веб-фермы ниже.

Требования к программному обеспечению

Windows Server 2012 R2

Поддерживаемые веб-браузеры

Порталу самообслуживания требуется разрешение экрана выше 1024 X 768. Он поддерживается в следующих браузерах.

  • Microsoft Edge

  • Microsoft Internet Explorer 10 и 11

  • Mozilla Firefox 42 и более поздних версий

  • Google Chrome 46 и более поздних версий

Развертывание нового портала самообслуживания

Более подробно развертывание нового портала самообслуживания описано в разделе Развертывание нового портала самообслуживания. В следующих разделах приведены основные рекомендации по развертыванию.

Установка портала в качестве веб-сайта по умолчанию

Если вы хотите установить новый портал самообслуживания на порт 80, сначала следует переместить веб-сайт по умолчанию в службах IIS на другой порт (например, 8080), после чего переместить портал самообслуживания на порт 80.

Использование протокола SSL

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

Топологии развертывания

Для портала самообслуживания вы можете использовать следующие топологии развертывания.

Один сервер (рекомендуется) — портал самообслуживания и сервер Service Manager на одном сервере

В этой топологии новый портал самообслуживания и роль сервера управления устанавливаются на одном сервере. Это рекомендуемая топология, так как позволяет избежать сетевых задержек между порталом и службой SDK. Кроме того, рекомендуется установить портал самообслуживания на сервер-получатель управления службами во избежание потери производительности, вызванной выполняемыми на сервере-источнике рабочими процессами.

sm-ssp-scenario-02

В этой топологии проверка подлинности Windows (которая задана по умолчанию) используется для обеспечения безопасной проверки подлинности без служебных данных, связанных с использованием SSL.

Развертывание автономного портала самообслуживания

В этой топологии портал самообслуживания устанавливается на сервере, на котором не установлена роль сервера управления Service Manager.

sm-ssp-scenario-03

В этой конфигурации новый портал самообслуживания и сервер-получатель Service Manager устанавливаются на разных серверах, а для создания подключения к службе SDK из веб-приложения требуется двойной прыжок. В этом случае нельзя использовать проверку подлинности Windows, поэтому портал следует настроить на использование обычной проверки подлинности. Поскольку обычная проверка подлинности является небезопасной, во избежание проблем с безопасностью развертывания, например при доступе к ресурсам за пределами брандмауэра и прокси-серверов, рекомендуется использовать протокол SSL.

Использование протокола SSL с сетевыми задержками между порталом и службой SDK делает эту топологию более медленной по сравнению с односерверным развертыванием. Однако такая конфигурация может оказаться полезной в сценариях развертывания, когда не удается избежать двойного прыжка.

Развертывание веб-фермы

Одно из основных преимуществ нового портала самообслуживания заключается в том, что веб-приложение не имеет локального хранилища данных, помимо кэшируемых им данных. Оно напрямую обращается к базе данных Service Manager, выполняя чтение и запись данных. Это упрощает параллельное развертывание нескольких экземпляров веб-сервера. Для больших развертываний, когда доступ к порталу параллельно осуществляет более 1000 пользователей, вы можете развернуть новый портал самообслуживания в качестве веб-фермы по аналогии со следующей конфигурацией.

sm-ssp-scenario-04

Веб-ферма обеспечивает высокий уровень доступности портала самообслуживания. Внутри веб-приложение создает соединение WCF со службой SDK. Создание начального подключения занимает некоторое время, поэтому оптимальный сценарий предполагает, что веб-сервер, к которому изначально подключается пользователь, должен обрабатывать все последующие запросы для ускорения работы. Чтобы реализовать такую конфигурацию в службах IIS, в параметре маршрутизации запросов приложений должно быть включено сходство клиента.

Устранение неполадок с установкой

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

Не удается установить новый портал самообслуживания после удаления старого портала

Для правильной работы установки необходимо очистить реестр предыдущей установки. Выполните следующие шаги.

  1. Откройте редактор реестра, выполните поиск раздела SMPortalWebContentServer и удалите все найденные экземпляры. Кроме того, вы можете удалить родительское свойство, если найден только портал.

  2. Перейдите к HEKY_LOCAL_MACHINE\SOFTWARE\Microsoft\System Center\2010\Service Manager\Setup и удалите следующие свойства.

    • PortalWebSiteName

    • PortalWebSitePort

    • SMServerName

  3. Вручную удалите каталог установки веб-сайта портала: <диск_установки>:\inetpub\wwwroot\SelfServicePortal.

Службы IIS не установлены

На странице конфигурации отображается ошибка роли IIS, даже если службы IIS включены на сервере.

sm-ssp-scenario-05

Это происходит при запуске установщика без учетных данных администратора. В результате установщику не удается получить доступ к параметрам конфигурации служб IIS.

Решение: запустите SetupWizard.exe от имени администратора. Вы можете щелкнуть файл SetupWizard.exe правой кнопкой мыши и выбрать пункт "Запуск от имени администратора".

Устранение неполадок портала самообслуживания

В этом разделе описываются способы устранения неполадок, которые могут возникнуть после установки нового портала самообслуживания.

Параметры служб IIS

Во время установки портала настраиваются следующие параметры по умолчанию.

Пул приложений

Он настраивается для работы в среде CLR .NET версии 4 в классическом режиме.

sm-ssp-scenario-06

В дополнительных параметрах пул приложений настраивается на запуск с использованием учетной записи службы, указанной во время установки. Пользователь должен иметь права администратора как в Service Manager, так и на локальном компьютере, где он выполняется.

sm-ssp-scenario-07

Конфигурация веб-сайта

Должны быть включены только параметры Олицетворение и Проверка подлинности Windows. Все остальные параметры должны быть отключены.

sm-ssp-scenario-08

Для олицетворения должен быть выбран Прошедший проверку пользователь.

sm-ssp-scenario-09

Параметры проверки подлинности Windows

sm-ssp-scenario-10

Документом по умолчанию для веб-сайта должен быть index.cshtml.

sm-ssp-scenario-11

Обычная проверка подлинности

Для сценария двойного прыжка проверка подлинности Windows не работает, поэтому ее следует отключить. Требуется включить и настроить обычную проверку подлинности.

sm-ssp-scenario-12

Включение трассировки

Чтобы включить трассировку, выполните следующие действия.

Шаг 1. Добавьте следующие параметры в файл web.config, чтобы включить создание журнала событий.

<system.web>  
   …..  
   <trace enabled="true"/>  
   …  
</system.web>  
  

Шаг 2. Направьте выходные данные в файл путем добавления следующих разделов в файл web.config.

<system.diagnostics>  
    <trace autoflush="true">  
      <listeners>  
        <add name="myListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="c:\logs\SSPOutput.log" />    
      </listeners>  
    </trace>  
</system.diagnostics>  
  

Поскольку веб-приложение выполняется в содержимом вошедшего в систему пользователя, убедитесь, что вами были предоставлены разрешения на запись всем пользователям для папки журнала. Например, "c:\logs" в приведенном выше примере.

Отладка служб IIS

Службы IIS поддерживают эффективное ведение журнала для отладки проблем IIS. Дополнительные сведения см. в статье Обзор ведения журналов в службах IIS.

Устранение неполадок развертывания

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

Изменения определений (объявления, предложения запроса, предложения услуги, статьи базы знаний) не отображаются

Новый портал самообслуживания использует механизм кэширования для хранения статических данных в целях обеспечения быстрого отклика. Время ожидания кэша по умолчанию составляет 30 минут, и его можно настроить. Дополнительные сведения см. в разделе "Базовая настройка" статьи Развертывание портала самообслуживания. Любые изменения определений объявлений, предложений запроса, предложений услуги и статей базы знаний не отображаются, пока не будет очищен кэш.

Используемое кэширование памяти основано на .NET Framework MemoryCache. Кэшированное содержимое остается в памяти до завершения рабочего процесса IIS. Перезапуск служб IIS не помогает, так как службы IIS не удаляют старый процесс и затем запускают новый. Вместо этого они повторно используют уже существующий процесс. Чтобы обеспечить вывод актуальных данных и удаление данных кэша, определите рабочий процесс IIS, связанный с данным экземпляром, и выберите Завершить задачу до перезапуска служб IIS.

Рабочий процесс IIS

Разделы моих запросов и моих действий пусты

Проекции нового типа включены в файл Portal.mpb, который входит в состав установщика и должен быть импортирован в Service Manager. Чтобы осуществить импорт, выполните указанные ниже действия.

  1. Импортируйте файл Portal.mpb на сервер управления.

  2. На сервере управления, к которому подключается портал, перезапустите службу SDK.

Всплывающие окна блокируют внешние ссылки

Если включен параметр "Конфигурация усиленной безопасности" для Internet Explorer, при просмотре портала пользователь на каждой странице получает следующее всплывающее окно.

всплывающее окно в Internet Explorer

Приведенное выше всплывающее окно отображается для пакета SDK App Insights JavaScript, который интегрирован в портал самообслуживания для сбора данных телеметрии. Вы можете отключить отправку данных телеметрии, изменив значение параметра конфигурации EnableTelemetry, что приведет к удалению всплывающего окна. Дополнительные сведения см. в разделе "Базовая настройка" статьи Развертывание портала самообслуживания.

Доступ к порталу можно получить с компьютера с IIS, но не с удаленного компьютера

Эта проблема может возникать, если портал и пакет SDK службы расположены на разных компьютерах (развертывание автономного портала самообслуживания). Это вызывает двойной прыжок при попытке получить доступ к порталу с удаленного компьютера. Поэтому конфигурация портала по умолчанию, описанная в разделе "Проверка подлинности Windows", работать не будет. Чтобы устранить эту проблему, используйте конфигурацию, описанную в разделе "Обычная проверка подлинности".

Некоторые предложения услуг или опубликованные предложения не видны на портале

Это обусловлено тем, что предложения услуг отображаются только в том случае, если соответствуют одному из следующих условий:

  • предложение услуги соответствует языку браузера или языку, выбранному через средство выбора языка портала;

  • для предложения услуги язык не выбран.

изображение 2 для 762cd06f-cd61-49ad-a757-8c7d45330125

изображение 1 для 762cd06f-cd61-49ad-a757-8c7d45330125

Ниже приведен список языков (и их кодов), которые поддерживаются порталом.

  • en-US: English

  • fr-FR: français

  • de-DE: Deutsch

  • cs-CZ: čeština

  • da-DK: Dansk

  • el-GR: Ελληνικά

  • es-ES: español

  • fi-FI: suomi

  • hu-HU: magyar

  • it-IT: italiano

  • ja-JP: 日本語

  • ko-KR: 한국어

  • nb-NO: norsk

  • nl-NL: Nederlands

  • pl-PL: polski

  • pt-BR: português (Brasil)

  • pt-PT: português (Portugal)

  • ru-RU: русский

  • sv-SE: svenska

  • tr-TR: Türkçe

  • zh-CHS: 中文(简体)

  • zh-TW: 中文(简体)

  • zh-HK: 中文 (香港特別行政區)

Время для элементов всегда отображается с "A.M." (например, даже для времени 11:00 P.M. время события отображается как 11:00 A.M.)

Чтобы устранить эту проблему, найдите тег utc-date и замените строку DateTime.Parse(xyz).ToString("yyyy,M,d,h,m,s") строкой DateTime.Parse(xyzToString("yyyy,M,d,H,m,s") в следующих файлах:

  • Views\KnowledgeBase\Article.cshtml;

  • Views\MyActivities\ActivityDetails.cshtml;

  • Views\MyRequests\RequestDetails.cshtml;

  • Views\Shared\_Layout.cshtml.

Необходимо, чтобы состояние определенных рабочих элементов на портале было "Активный"

Ниже приведен пример кода, которые позволяет отобразить перечисления состояния ServiceRequestStatusEnum.OnHold и IncidentStatusEnum.Active.Pending в качестве активного.

В файл Views\MyRequests\Index.cshtml требуется внести следующее дополнение.

  
@{  
    List<Dictionary<string, object>> sortList = ViewBag.RequestsList;  
  
    string idClicked = ViewBag.ClickeID;  
    var reqType = ViewBag.ReqType;  
    var criteria = ViewBag.Criteria;  
    string clicked_filter = ViewBag.ClickedFilter;  
  
    foreach (Dictionary<string, object> listitem in sortList)  
    {  
        if (listitem["Status"].ToString().Equals("ServiceRequestStatusEnum.OnHold") || listitem["Status"].ToString().Equals("IncidentStatusEnum.Active.Pending"))  
        {  
            listitem["RequestStatus"] = Resources.SelfServicePortalResources.Active;  
        }  
    }   
}  
  

В файл Views\MyRequests\RequestDetails.cshtml требуется внести следующее дополнение.

  
@{  
…………  
  
    if (changeStatusButtonText != null)  
    {  
        if (changeStatusButtonText.Equals("ActivateRequest"))  
        {  
            changeStatusButtonText = Resources.SelfServicePortalResources.ActivateRequest;  
            changeStatusCommentPlaceholder = Resources.SelfServicePortalResources.AddCommentToActivate;  
        }  
        else if (changeStatusButtonText.Equals("CancelRequest")) //Active  
        {  
            changeStatusButtonText = Resources.SelfServicePortalResources.CancelRequest;  
             changeStatusCommentPlaceholder = Resources.SelfServicePortalResources.AddCommentToCancel;  
        }  
    }  
  
    if (requestEntry["Status"].ToString().Equals("ServiceRequestStatusEnum.OnHold")  
        || requestEntry["Status"].ToString().Equals("IncidentStatusEnum.Active.Pending"))  
    {  
        requestEntry["RequestStatus"] = Resources.SelfServicePortalResources.Active;  
        changeStatusButtonText = Resources.SelfServicePortalResources.CancelRequest;  
        changeStatusCommentPlaceholder = Resources.SelfServicePortalResources.AddCommentToCancel;          
    }   
  
}