Настройка службы IIS World Wide Web Publishing Service в отказоустойчивом кластере Windows Server
В этой статье описывается, как настроить Microsoft IIS (IIS) World Wide Web Publishing Service (W3SVC) в отказоустойчивом кластере Windows Server (WSFC).
Исходная версия продукта: Windows Server 2008 и более поздних версий, Internet Information Services 8.0 и более поздних версий
Исходный номер базы знаний: 970759
Введение
Процедуры, описанные в этой статье, применяются только к службе веб-публикации. Инструкции по настройке службы публикации FTP в отказоустойчивом кластере см. в статье «Настройка FTP для IIS в отказоустойчивом кластере Windows Server».
Дополнительные сведения
В более ранних версиях служб Internet Information Services корпорация Майкрософт предоставила универсальные компоненты мониторинга ресурсов для поддержки экземпляров веб-сервера высокой доступности с помощью инфраструктуры кластеризации Майкрософт. Однако для полного реализации потенциал такого решения необходим пользовательский код. Кроме того, универсальные скрипты, предоставленные корпорацией Майкрософт, не соответствуют потребностям клиентов. Чтобы настроить IIS 7.0 или более позднюю версию в кластерной среде, использующей отказоустойчивую кластерию Windows Server, необходимо использовать пользовательский код (скрипты), чтобы обеспечить высокий уровень доступности. После этого пользователи могут настроить настройку в соответствии со своими требованиями. предоставляет им полный контроль над интеграцией веб-приложений с высоким уровнем доступности. Кроме того, интерфейсы сценариев для администрирования и мониторинга, появившиеся в IIS 7.0, предоставляют более широкие возможности по сравнению со сценариями, которые были предоставлены ранее.
Файлы установки IIS 7.0 неправильно включают файлы скриптовClusweb.vbs иClusftp.vbs, которые используются в IIS 6.0 для задач администрирования кластера IIS. Не используйте эти скрипты в IIS 7.0 или более поздней версии.
Мы рекомендуем администраторам тщательно оценить использование балансировки сетевой нагрузки (NLB) в качестве основного и предпочтительного метода для повышения масштабируемости и доступности веб-приложений с несколькими серверами под управлением IIS 7.0 или более поздней версии, а не с использованием отказоустойчивой кластеризации. Одним из преимуществ NLB является то, что все серверы могут активно участвовать в одновременной обработке входящих http-запросов. Еще одно преимущество заключается в том, что в среде NLB IIS гораздо проще поддерживать последовательные обновления и откаты, обеспечивая при этом высокий уровень доступности веб-приложений. Дополнительные сведения об использовании IIS 7.0 или более поздней версии в среде балансировки сетевой нагрузки см. в следующих статьях:
- Установка и настройка балансировки сетевой нагрузки
- Балансировка сетевой нагрузки
Важно учитывать, что кластеризация IIS с помощью кластеризации служб IIS не всегда гарантирует высокий уровень доступности для веб-приложений. Хотя службы IIS (в частности, служба WWW) могут быть запущены и запущены, процесс размещения определенного пула приложений мог завершиться или приложение могло вызывать внутренние ошибки HTTP сервера. Кластеризация веб-приложений и мониторинг их работоспособности с помощью пользовательского скрипта — правильный и рекомендуемый способ обеспечения высокой доступности кластера IIS с помощью отказоустойчивой кластеризации. Ниже приведен пример скрипта, который отслеживает состояние пула приложений, чтобы определить, запущен ли он.
Чтобы настроить высокий уровень доступности для веб-сервера IIS 7.0 или более поздней версии с помощью отказоустойчивой кластеризации, выполните следующие действия. Шаги 3–7 более подробно описаны ниже. Пример скрипта далее в этой статье можно использовать в качестве примера для IIS 7.0 или более поздней версии.
- Установите роль веб-сервера на всех узлах кластера. Дополнительные сведения см. в руководстве по развертыванию IIS 7.
- Установите компонент отказоустойчивой кластеризации на всех узлах кластера и создайте кластер. Дополнительные сведения см. в руководстве по развертыванию отказоустойчивого кластера.
- Настройка общей папки, которая будет использоваться для общей конфигурации IIS.
- Настройте общую конфигурацию IIS на всех узлах кластера.
- Настройте автономные файлы IIS для общей конфигурации на всех узлах кластера.
- Настройте веб-сайт (включая связанный пул приложений) и укажите расположение его содержимого на одном узле кластера.
- Настройте высокий уровень доступности веб-сайта, создав универсальный скрипт в отказоустойчивой кластеризации.
Настройка общей папки, которая будет использоваться для общей конфигурации IIS
- Создайте пользователя, который будет получать доступ к общей папке, которая будет использоваться для общей конфигурации IIS.
- Создайте общую папку. Эта общая папка будет использоваться для хранения общей конфигурации IIS, которая будет совместно использоваться службами IIS на всех узлах кластера. Существует несколько вариантов:
- На автономном сервере, который не является частью отказоустойчивого кластера, создайте общую папку.
- В другом отказоустойчивом кластере Windows Server создайте общую папку с высоким уровнем доступности. Дополнительные сведения см. в пошаговом руководстве по настройке отказоустойчивого кластера Two-Node отказоустойчивого кластера файлового сервера.
- В том же отказоустойчивом кластере, где будет размещен веб-сайт с высоким уровнем доступности, создайте общую папку с высоким уровнем доступности. Дополнительные сведения см. в пошаговом руководстве по отказоустойчивому кластеру. Настройка Two-Node отказоустойчивого кластера файлового сервера.
- Задайте разрешения для общей папки, созданной на шаге 2. Предоставьте пользователю, созданному на шаге 1, разрешения на полный доступ к общей папке и разрешения NTFS.
- Убедитесь, что все узлы кластера могут перейти к общей папке. Путь к общей папке: \\\
Настройка общей конфигурации IIS на всех узлах кластера
Возникла проблема с общей конфигурацией IIS в Windows 2008 Server из-за отсутствия привилегий для Application Host Helper Service . Для работы общей конфигурации необходимо выполнить следующие действия при настройке общей конфигурации IIS в Windows 2008 Server.
- Откройте командную команду администратора.
- Выполните следующую команду:
net stop apphostsvc
sc privs apphostsvc SeChangeNotifyPrivilege/SeTcbPrivilege/SeImpersonatePrivilege
net start apphostsvc
После выполнения этих действий на каждом сервере Windows 2008 в кластере продолжайте настройку общей конфигурации IIS, как описано в этом разделе.
На одном из узлов кластера экспортируйте общую конфигурацию в общую папку:
- Перейдите к разделу «Администрирование» и выберите диспетчер служб IIS.
- В левой области выберите узел имени сервера.
- Дважды щелкните значок общей конфигурации .
- На странице «Общая конфигурация» выберите «Экспорт конфигурации» в области действий (справа), чтобы экспортировать файлы конфигурации с локального компьютера в другое расположение.
- В диалоговом окне «Конфигурация экспорта» введите путь к общей папке ( \\\ ) в поле «Физический путь «.
- Выберите «Подключить как«, а затем введите имя пользователя и пароль для учетной записи пользователя, которая имеет доступ к общей папке, в которой хранится общая конфигурация, а затем нажмите кнопку «ОК». Эта учетная запись будет использоваться для доступа к общей папке. Следует использовать ограниченную учетную запись Active Directory, которая не является администратором домена.
- В диалоговом окне «Экспорт конфигурации» введите пароль, который будет использоваться для защиты ключей шифрования, а затем нажмите кнопку «ОК».
- На странице «Общая конфигурация » установите флажок «Включить общую конфигурацию».
- Введите физический путь, учетную запись пользователя и пароль, введенные ранее, а затем выберите «Применить » в области действий.
- В диалоговом окне «Пароль ключей шифрования» введите пароль ключа шифрования, который вы настроили ранее, а затем нажмите кнопку «ОК «.
- В диалоговом окне «Общая конфигурация» нажмите кнопку «ОК».
- Нажмите кнопку ОК.
На каждом из других узлов кластера используйте общую конфигурацию, которую вы только что экспортируете в общую папку:
- Перейдите к разделу «Администрирование» и выберите диспетчер служб IIS.
- Выберите узел имени сервера.
- Дважды щелкните значок общей конфигурации .
- На странице «Общая конфигурация » установите флажок «Включить общую конфигурацию».
- Введите физический путь к общей папке ( \\\ ), учетную запись пользователя и пароль, введенные ранее, а затем выберите «Применить» в области действий.
- В диалоговом окне «Пароль ключей шифрования» введите пароль ключа шифрования, который вы настроили ранее, а затем нажмите кнопку «ОК «.
- В диалоговом окне «Общая конфигурация» нажмите кнопку «ОК».
- Нажмите кнопку ОК.
Дополнительные сведения о настройке общих конфигураций в IIS см. в разделе «Общая конфигурация».
Настройка автономных файлов IIS для общей конфигурации на всех узлах кластера
На каждом узле кластера включите автономные файлы:
- Установка интерфейса рабочего стола
- Перейдите к разделу «Администрирование» и выберите диспетчер сервера.
- В левой области выберите » Компоненты».
- Выберите «Добавить компоненты » в правой области.
- Выполните одно из следующих действий в соответствии с вашей версией Windows:
- Дополнительные Windows Server 2016 на странице «Установка сервера с рабочим столом».
- Для Windows Server 2102 и 2012 R2 выберите «Возможности рабочего стола» в разделе «Пользовательские интерфейсы и инфраструктуры» в списке функций.
- Для Windows Server 2008 и 2008 R2 выберите «Возможности рабочего стола».
- Выберите «Установить» , чтобы установить возможности рабочего стола.
- Перезагрузите компьютер.
- Для Windows Server 2012 2012 R2 и 2016 выберите центр синхронизации в панель управления, а затем выберите «Управление автономными файлами».
- Для Windows Server 2008 и 2008 R2 выберите автономные файлы в панель управления.
REG ADD "HKLM\System\CurrentControlSet\Services\CSC\Parameters" /v ReadOnlyCache /t REG_DWORD /d 1 /fПримечание. Если вы настроили общую папку для высокой доступности в том же отказоустойчивом кластере, где размещены узлы IIS, параметр Always Available Offline не будет отображаться при щелчке правой кнопкой мыши общей папки, если на узле кластера размещен высокодоступный файловые серверы. Необходимо переместить приложение файлового сервера с высоким уровнем доступности на другой узел.
Дополнительные сведения о настройке автономных файлов для общей конфигурации в IIS см. в разделе «Автономные файлы для общей конфигурации».
Настройте веб-сайт и укажите расположение его содержимого на одном узле кластера.
Найдите узел кластера, которому принадлежит ресурс диска кластера, в котором будут находиться файлы содержимого веб-сайта:
- Перейдите к разделу «Администрирование» и выберите диспетчер отказоустойчивости кластеров.
- Подключитесь к кластеру. Если вы используете один из узлов кластера, кластер автоматически появится в списке.
- В разделе «Хранилище» найдите ресурс диска, на котором будет находиться содержимое веб-страницы. Для этого разверните дерево хранилища для ресурса диска. Убедитесь, что хранилище не используется другим приложением высокой доступности в кластере. Хранилище находится в разделе » Доступное хранилище».
- Узел кластера, на котором находится этот ресурс в сети. Вы настроите службы IIS на этом узле кластера.
- Имя ресурса диска кластера.
Он будет использоваться для файлов содержимого. На узле кластера, на котором находится ресурс в сети, настройте веб-сервер для использования общего диска для содержимого веб-сайта:
- Перейдите к разделу «Администрирование» и выберите диспетчер служб IIS.
- В левой области разверните узел имени сервера.
- Разверните «Сайты», а затем в разделе «Сайты» выберите сайт, который вы настраиваете.
- В области справа выберите » Дополнительные параметры» в разделе «Управление веб-сайтом».
- Найдите свойство «Физический путь» в разделе «Общие параметры», а затем введите расположение, в котором находятся файлы содержимого веб-сайта. Это расположение ресурса диска кластера, которое вы записали на шаге 5 предыдущей процедуры.
- Нажмите кнопку ОК.
Настройка высокой доступности веб-сайта путем создания универсального скрипта в диспетчере отказоустойчивости кластеров
На последнем шаге настройки высокой доступности для веб-серверов IIS настройте ресурс универсального скрипта, который будет использоваться для мониторинга веб-сайта и пула приложений для веб-сайта:
- На каждом узле кластера скопируйте скрипт, предоставленный в конце этой статьи, в Windows\System32\inetsrv\Clusweb7.vbs .
- По умолчанию скрипт отслеживает веб-сайт с именем « Веб-сайт по умолчанию» и пул приложений с именем DefaultAppPool. Если это не правильный веб-сайт и пул приложений, измените SITE_NAME and APP_POOL_NAME переменные. Убедитесь, что один и тот же веб-сайт и пул приложений в скрипте существуют на всех узлах кластера.
Примечание. В именах учитывается регистр.
- Для Windows Server 2012 2012 R2 и 2016 щелкните правой кнопкой мыши «Роли», а затем выберите » Настроить роль», чтобы создать ее.
- Для Windows Server 2008 и 2008 R2 щелкните кластер правой кнопкой мыши и выберите «Настроить службу или приложение». Мастер создает рабочую нагрузку с высоким уровнем доступности.
Примечание. Если общая папка, используемая для общей конфигурации IIS, размещена в том же кластере, здесь следует использовать другой ресурс диска.
Примечание. Чтобы разместить несколько веб-сайтов с высоким уровнем доступности в одном отказоустойчивом кластере, выполните те же действия, что и выше. Однако используйте разные файлы скриптов для каждого веб-сайта и разных кластеризованных общих хранилищ. Например, используйтеclusweb7.vbs %systemroot%\System32\Inetsrv для первого веб-сайта ,clweb7-2.vbsдля второго,clweb7-3.vbs для третьего и т. д. Каждый файл скрипта отслеживает разные веб-сайт и пул приложений.
Следующий сценарий предназначен только для примера и не поддерживается корпорацией Майкрософт явным образом. Использование этого скрипта в кластеризованной среде IIS 7.0 или более поздней версии находится под вашим риском.
' 'This script provides high availability for IIS websites 'By default, it monitors the "Default Web Site" and "DefaultAppPool" 'To monitor another website, change the SITE_NAME below 'To monitor another application pool, change the APP_POOL_NAME below 'More thorough and application-specific health monitoring logic can be added to the script if needed Option Explicit DIM SITE_NAME DIM APP_POOL_NAME Dim START_WEB_SITE Dim START_APP_POOL Dim SITES_SECTION_NAME Dim APPLICATION_POOLS_SECTION_NAME Dim CONFIG_APPHOST_ROOT Dim STOP_WEB_SITE 'Note: 'Replace this with the site and application pool you want to configure high availability for 'Make sure that the same website and application pool in the script exist on all cluster nodes. Note that the names are case-sensitive. SITE_NAME = "Default Web Site" APP_POOL_NAME = "DefaultAppPool" START_WEB_SITE = 0 START_APP_POOL = 0 STOP_WEB_SITE = 1 SITES_SECTION_NAME = "system.applicationHost/sites" APPLICATION_POOLS_SECTION_NAME = "system.applicationHost/applicationPools" CONFIG_APPHOST_ROOT = "MACHINE/WEBROOT/APPHOST" 'Helper script functions 'Find the index of the website on this node Function FindSiteIndex(collection, siteName) Dim i FindSiteIndex = -1 For i = 0 To (CInt(collection.Count) - 1) If collection.Item(i).GetPropertyByName("name").Value = siteName Then FindSiteIndex = i Exit For End If Next End Function 'Find the index of the application pool on this node Function FindAppPoolIndex(collection, appPoolName) Dim i FindAppPoolIndex = -1 For i = 0 To (CInt(collection.Count) - 1) If collection.Item(i).GetPropertyByName("name").Value = appPoolName Then FindAppPoolIndex = i Exit For End If Next End Function 'Get the state of the website Function GetWebSiteState(adminManager, siteName) Dim sitesSection, sitesSectionCollection, siteSection, index, siteMethods, startMethod, executeMethod Set sitesSection = adminManager.GetAdminSection(SITES_SECTION_NAME, CONFIG_APPHOST_ROOT) Set sitesSectionCollection = sitesSection.Collection index = FindSiteIndex(sitesSectionCollection, siteName) If index = -1 Then GetWebSiteState = -1 End If Set siteSection = sitesSectionCollection(index) GetWebSiteState = siteSection.GetPropertyByName("state").Value End Function 'Get the state of the ApplicationPool Function GetAppPoolState(adminManager, appPool) Dim configSection, index, appPoolState set configSection = adminManager.GetAdminSection(APPLICATION_POOLS_SECTION_NAME, CONFIG_APPHOST_ROOT) index = FindAppPoolIndex(configSection.Collection, appPool) If index = -1 Then GetAppPoolState = -1 End If GetAppPoolState = configSection.Collection.Item(index).GetPropertyByName("state").Value End Function 'Start the w3svc service on this node Function StartW3SVC() Dim objWmiProvider Dim objService Dim strServiceState Dim response 'Check to see if the service is running set objWmiProvider = GetObject("winmgmts:/root/cimv2") set objService = objWmiProvider.get("win32_service='w3svc'") strServiceState = objService.state If ucase(strServiceState) = "RUNNING" Then StartW3SVC = True Else 'If the service is not running, try to start it response = objService.StartService() 'response = 0 or 10 indicates that the request to start was accepted If ( response <> 0 ) and ( response <> 10 ) Then StartW3SVC = False Else StartW3SVC = True End If End If End Function 'Start the application pool for the website Function StartAppPool() Dim ahwriter, appPoolsSection, appPoolsCollection, index, appPool, appPoolMethods, startMethod, callStartMethod Set ahwriter = CreateObject("Microsoft.ApplicationHost.WritableAdminManager") Set appPoolsSection = ahwriter.GetAdminSection(APPLICATION_POOLS_SECTION_NAME, CONFIG_APPHOST_ROOT) Set appPoolsCollection = appPoolsSection.Collection index = FindAppPoolIndex(appPoolsCollection, APP_POOL_NAME) Set appPool = appPoolsCollection.Item(index) 'See if it is already started If appPool.GetPropertyByName("state").Value = 1 Then StartAppPool = True Exit Function End If 'Try To start the application pool Set appPoolMethods = appPool.Methods Set startMethod = appPoolMethods.Item(START_APP_POOL) Set callStartMethod = startMethod.CreateInstance() callStartMethod.Execute() 'If started return true, otherwise return false If appPool.GetPropertyByName("state").Value = 1 Then StartAppPool = True Else StartAppPool = False End If End Function 'Start the website Function StartWebSite() Dim ahwriter, sitesSection, sitesSectionCollection, siteSection, index, siteMethods, startMethod, executeMethod Set ahwriter = CreateObject("Microsoft.ApplicationHost.WritableAdminManager") Set sitesSection = ahwriter.GetAdminSection(SITES_SECTION_NAME, CONFIG_APPHOST_ROOT) Set sitesSectionCollection = sitesSection.Collection index = FindSiteIndex(sitesSectionCollection, SITE_NAME) Set siteSection = sitesSectionCollection(index) if siteSection.GetPropertyByName("state").Value = 1 Then 'Site is already started StartWebSite = True Exit Function End If 'Try to start site Set siteMethods = siteSection.Methods Set startMethod = siteMethods.Item(START_WEB_SITE) Set executeMethod = startMethod.CreateInstance() executeMethod.Execute() 'Check to see if the site started, if not return false If siteSection.GetPropertyByName("state").Value = 1 Then StartWebSite = True Else StartWebSite = False End If End Function 'Stop the website Function StopWebSite() Dim ahwriter, sitesSection, sitesSectionCollection, siteSection, index, siteMethods, startMethod, executeMethod, autoStartProperty Set ahwriter = CreateObject("Microsoft.ApplicationHost.WritableAdminManager") Set sitesSection = ahwriter.GetAdminSection(SITES_SECTION_NAME, CONFIG_APPHOST_ROOT) Set sitesSectionCollection = sitesSection.Collection index = FindSiteIndex(sitesSectionCollection, SITE_NAME) Set siteSection = sitesSectionCollection(index) 'Stop the site Set siteMethods = siteSection.Methods Set startMethod = siteMethods.Item(STOP_WEB_SITE) Set executeMethod = startMethod.CreateInstance() executeMethod.Execute() End Function 'Cluster resource entry points. More details here: 'http://msdn.microsoft.com/en-us/library/aa372846(VS.85).aspx 'Cluster resource Online entry point 'Make sure the website and the application pool are started Function Online( ) Dim bOnline 'Make sure w3svc is started bOnline = StartW3SVC() If bOnline <> True Then Resource.LogInformation "The resource failed to come online because w3svc could not be started." Online = False Exit Function End If 'Make sure the application pool is started bOnline = StartAppPool() If bOnline <> True Then Resource.LogInformation "The resource failed to come online because the application pool could not be started." Online = False Exit Function End If 'Make sure the website is started bOnline = StartWebSite() If bOnline <> True Then Resource.LogInformation "The resource failed to come online because the web site could not be started." Online = False Exit Function End If Online = true End Function 'Cluster resource offline entry point 'Stop the website Function Offline( ) StopWebSite() Offline = true End Function 'Cluster resource LooksAlive entry point 'Check for the health of the website and the application pool Function LooksAlive( ) Dim adminManager, appPoolState, configSection, i, appPoolName, appPool, index i = 0 Set adminManager = CreateObject("Microsoft.ApplicationHost.AdminManager") appPoolState = -1 'Get the state of the website if GetWebSiteState(adminManager, SITE_NAME) <> 1 Then Resource.LogInformation "The resource failed because the " & SITE_NAME & " web site is not started." LooksAlive = false Exit Function End If 'Get the state of the Application Pool if GetAppPoolState(adminManager, APP_POOL_NAME) <> 1 Then Resource.LogInformation "The resource failed because Application Pool " & APP_POOL_NAME & " is not started." LooksAlive = false Exit Function End if 'Web site and Application Pool state are valid return true LooksAlive = true End Function 'Cluster resource IsAlive entry point 'Do the same health checks as LooksAlive 'If a more thorough than what we do in LooksAlive is required, this should be performed here Function IsAlive() IsAlive = LooksAlive End Function 'Cluster resource Open entry point Function Open() Open = true End Function 'Cluster resource Close entry point Function Close() Close = true End Function 'Cluster resource Terminate entry point Function Terminate() Terminate = true End Function 'Обратная связь
Были ли сведения на этой странице полезными?
Обзор веб-сервера IIS
Веб-серверы IIS 7 и более поздних версий имеют полностью модульную архитектуру, которая обеспечивает три основных преимущества:
- Компонентизация
- Расширение среды
- Интеграция ASP.NET
Компонентизация
Все функции веб-сервера теперь управляются как автономные компоненты , которые можно легко добавлять, удалять и заменять. Это обеспечивает несколько ключевых преимуществ по сравнению с предыдущими версиями IIS:
- Защитите сервер, уменьшив зону направлений атак. Уменьшение контактной зоны является одним из наиболее эффективных способов защиты серверной системы. С помощью IIS можно удалить все неиспользуемые функции сервера, достигнув минимально возможной контактной зоны при сохранении функциональности приложения.
- Повышение производительности и сокращение объема памяти. Удалив неиспользуемые функции сервера, можно также уменьшить объем памяти, используемой сервером, и повысить производительность за счет уменьшения объема кода компонента, который выполняется при каждом запросе к приложению.
- Создание пользовательских или специализированных серверов. Выбрав определенный набор функций сервера, можно создать пользовательские серверы, оптимизированные для выполнения определенных функций в топологии приложения, таких как пограничное кэширование или балансировка нагрузки. Вы можете добавить пользовательские функции для расширения или замены существующих функций с помощью собственных или сторонних серверных компонентов, созданных на основе новых API расширяемости. Компонентная архитектура обеспечивает долгосрочные преимущества для сообщества IIS: она упрощает разработку новых функций сервера, так как они необходимы как в корпорации Майкрософт, так и среди сторонних разработчиков.
В iis также реализована эффективная модель активации процессов HTTP, представленная в IIS 6.0 с пулами приложений. Модель активации процесса HTTP доступна не только для веб-приложений, получающих запросы или сообщения по любому протоколу. Эта независимая от протокола служба называется службой активации процессов Windows (WAS). Windows Communication Foundation (WCF) поставляется с адаптерами протоколов, которые могут использовать возможности WAS, повышая надежность и использование ресурсов служб WCF.
Расширение среды
Разработчики могут использовать модульную архитектуру IIS для создания мощных серверных компонентов, которые расширяют или заменяют существующие функции веб-сервера и добавляют ценность для веб-приложений, размещенных в IIS.
Ниже приведены причины для разработки служб IIS.
- Расширение возможностей веб-приложений. Расширение СЛУЖБ IIS позволяет веб-приложениям использовать функциональные возможности, которые во многих случаях не могут быть легко предоставлены на уровне приложения. Используя ASP.NET IIS или собственную расширяемость C++, разработчики могут создавать решения, которые добавляют ценность для всех компонентов приложения, таких как пользовательские схемы проверки подлинности, мониторинг и ведение журнала, фильтрация безопасности, балансировка нагрузки, перенаправление содержимого и управление состоянием.
- Улучшенные возможности разработки. Совершенно новая модель расширяемости C++ устраняет большинство проблем, которые ранее преследовали разработку ISAPI, представляя упрощенный объектно-ориентированный API, который способствует написанию надежного серверного кода. Кроме того, улучшенная интеграция Visual Studio еще больше улучшает возможности разработки для IIS.
- Используйте все возможности ASP.NET.ASP.NET интеграция позволяет быстро разрабатывать серверные модули с помощью знакомых интерфейсов ASP.NET 2.0 и многофункциональных служб ASP.NET приложений. ASP.NET модули могут предоставлять службы для ASP, CGI, статических файлов и других типов контента и могут полностью расширять сервер без ограничений, присутствующих в предыдущих версиях IIS.
Интеграция ASP.NET
СЛУЖБЫ IIS позволяют веб-приложениям в полной мере использовать мощные функции и расширяемость ASP.NET 2.0. ASP.NET функции, включая проверку подлинности на основе форм, членство, состояние сеанса и многие другие, можно использовать для всех типов содержимого, обеспечивая единый интерфейс для всего веб-приложения. Разработчики могут использовать знакомые ASP.NET модели расширяемости и многофункциональные API.NET для создания функций сервера IIS, которые так же эффективны, как и те, которые написаны с помощью собственных API C++.
Воспользуйтесь ссылками ниже, чтобы начать изучение аспектов конфигурации IIS, ознакомьтесь с лабораторией по началу работы и скачиванию комплектов с ресурсами, доступными на IIS.NET.
Начать обучение
- Общие сведения о модулях IIS
- Интеграция ASP.NET со службами IIS
- Как воспользоваться преимуществами интегрированного конвейера IIS
- Пример комплексной расширяемости
- Создание настраиваемого сервера
- Разработка модуля с помощью .NET
- Разработка собственного модуля (C\C++)
Начало работы
- Ознакомительные выпуски и виртуальные лаборатории Windows Server 2008 R2 ( https://www.microsoft.com/server-cloud/windows-server/2008-r2-trial.aspx )
Скачиваемые файлы
- Начальный комплект управляемого модуля
- Собственный (C\C++) Начальный комплект модуля
Как отключить iis в Windows, за минуту


Добрый день уважаемые читатели, в прошлый раз мы с вами установили IIS 7 и IIS 8.5, я показал вам, как создавать там сайты, по протоколам http и https с использованием SSL сертификатов. Предположим, что вам на какое-то время нужно отключить IIS в Windows, это может быть по ряду причин, тестовый период закончили по сайту или проект пока прикрыт, до лучших времен, и вот чтобы не кушались ресурсы вашего сервера, вам его нужно потушить, я покажу как правильно это делать.
Что такое отключение IIS
Давайте теперь определимся с понятием отключение — это не удаление самой роли IIS, это просто отключение автозапуска и службы, чтобы она не запускалась вместе с операционной системой Windows Server или Windows 10 и ниже.
Временное отключение IIS Windows
Если вам нужно на короткое время выключить данную службу, то у вас 3 способа:
- Через консоль диспетчер IIS
- Через консоль службы
- Через командную строку
Давайте начнем с первого метода, открываем оснастку диспетчер Internet Information Services. Находится он в серверных операционных системах в диспетчере сервера > Средства


В поле «Управление сервером» выбираем действие «Остановить», служба будет потушена.

Остановка IIS из командной строки
Теперь давайте остановим IIS через командную строку, делается это одной командой
IISRESET /stop
Как видим службы интернета успешно остановлены, если нужно запустить, то меняем ключик на start.


Находим службу IIS Admin, заходим в ее свойства через правый клик. Сразу видите тут кнопку остановить.

Запретить автозапуск (автозагрузку) IIS
Ну и давайте сделаем так, чтобы Internet Information Services не стартовала при запуске системы. Находясь в оснастке службы, в свойствах изменим тип запуска, с автоматического на остановлено.

Все, как видите, отключить автозапуск iis очень просто, буквально два клика, не забываем еще нажать кнопку «Остановить»

Все служба IIS Admin отключена и задание выполнено.

Полезные команды IIS
Перезапуск Internet Information Services — iisreset
Популярные Похожие записи:
Установка и настройка Hyper-V в Windows 11- Решено: Error 1061 The service cannot accept control messages at this time
Как отключить обновления Windows навсегда, за минуту- Автозагрузка в windows server 2012-2016
Служба 1С отображается абракадаброй- Бесконечное подключение по RDP в Windows 11
Распространение приложения для Windows 10 с сервера IIS
В этом руководстве показано, как настроить сервер IIS, убедиться, что веб-приложение может размещать пакеты приложений и эффективно вызывать и использовать установщик приложений.
Приложение Установщика приложений позволяет разработчикам и ИТ-разработчикам распространять приложения Windows 10, размещая их на собственных сеть доставки содержимого (CDN). Это полезно для предприятий, которые не хотят или не должны публиковать свои приложения в Microsoft Store, но по-прежнему хотят воспользоваться преимуществами платформы упаковки и развертывания Windows 10.
Настройка
Чтобы успешно пройти с помощью этого руководства, вам потребуется следующее:
- Visual Studio 2017
- Средства разработки веб-сайтов и СЛУЖБЫ IIS
- Пакет приложения Для Windows 10 — пакет приложения, который будет распространяться
Необязательно. Начальный проект на GitHub. Это полезно, если у вас нет пакетов приложений для работы, но вы по-прежнему хотите узнать, как использовать эту функцию.
Шаг 1. Установка IIS и ASP.NET
службы IIS — это компонент Windows, который можно установить с помощью меню . В меню выполните поиск по включению или отключению функций Windows.
Найдите и выберите службы IIS для установки IIS.
Вам не нужно выбирать все поля проверка в разделе службы IIS. Только те, которые выбраны, если проверка службы IIS достаточно.
Вам также потребуется установить ASP.NET 4.5 или более поздней версии. Чтобы установить его, найдите службы IIS —>> функции разработки приложений. Выберите версию ASP.NET, превышающую или равной ASP.NET 4.5.

Шаг 2. Установка средств разработки Visual Studio 2017 и веб-разработки
Установите Visual Studio 2017 , если вы еще не установили его. Если у вас уже есть Visual Studio 2017, убедитесь, что установлены следующие рабочие нагрузки. Если рабочие нагрузки отсутствуют в установке, выполните инструкции с помощью установщика Visual Studio (найденного из меню ).
Во время установки выберите ASP.NET и веб-разработку и любые другие интересующие вас рабочие нагрузки.
После завершения установки запустите Visual Studio и создайте проект (файл —>New Project).
Шаг 3. Создание веб-приложения
Запустите Visual Studio 2017 как Администратор istrator и создайте проект веб-приложения Visual C# с пустым шаблоном проекта.

Шаг 4. Настройка IIS с помощью веб-приложения
В Обозреватель решений щелкните правой кнопкой мыши корневой проект и выберите «Свойства«.
В свойствах веб-приложения выберите вкладку «Веб-сайт «. В разделе «Серверы » выберите «Локальные службы IIS » в раскрывающемся меню и нажмите кнопку «Создать виртуальный каталог«.

Шаг 5. Добавление пакета приложения в веб-приложение
Добавьте пакет приложения, который будет распространяться в веб-приложение. Вы можете использовать пакет приложения, который является частью предоставленных пакетов начальных проектов на GitHub, если у вас нет пакета приложения. Сертификат (MySampleApp.cer), подписанный пакетом, также содержит пример на сайте GitHub. Перед установкой приложения необходимо установить сертификат на устройство (шаг 9).
В начальном веб-приложении проекта новая папка была добавлена в веб-приложение, которое называется пакетами , содержащими пакеты приложений, которые будут распространяться. Чтобы создать папку в Visual Studio, щелкните правой кнопкой мыши узел проекта в Обозреватель решений, выберите «Добавить ->Создать папку» и назовите ее пакетами. Чтобы добавить пакеты приложений в папку, щелкните правой кнопкой мыши папку пакетов и выберите «Добавить> существующий элемент» и перейдите к расположению пакета приложения.

Шаг 6. Создание веб-страницы
В этом примере веб-приложения используется простой HTML-код. Вы можете создать веб-приложение в соответствии с вашими потребностями.
Щелкните правой кнопкой мыши корневой проект обозревателя решений, выберите «Добавить новый> элемент» и добавьте новую HTML-страницу из веб-раздела.
После создания HTML-страницы щелкните правой кнопкой мыши HTML-страницу в Обозреватель решений и выберите «Задать как начальную страницу«.
Дважды щелкните HTML-файл, чтобы открыть его в окне редактора кода. В этом руководстве будут использоваться только элементы, необходимые на веб-странице для успешного вызова приложения установщика приложений для установки приложения Windows 10.
Добавьте следующий HTML-код на веб-страницу. Ключ успешного вызова установщика приложений — использовать пользовательскую схему, которую установщик приложений регистрирует в ОС: ms-appinstaller:?source= Дополнительные сведения см. в приведенном ниже примере кода.
Убедитесь, что путь URL-адреса, указанный после пользовательской схемы, соответствует URL-адресу проекта на веб-вкладке решения VS.
Install Page Install My Sample AppШаг 7. Настройка веб-приложения для типов MIME пакета приложений
Откройте файл web.config из обозревателя решений и добавьте следующие строки в элемент.
На новейших веб-технологиях Microsoft .NET Core. Сборка веб-сайта с помощью ASP .NET Core игнорирует статическое содержимое web.config mimeMap. В результате вам потребуется правильная настройка веб-сайта .NET Core, в котором будет размещена установка MSIX, необходимо изменить метод настройки в файле Startup.cs. Дополнительные сведения см . в документации по .NET Core.
Шаг 8. Добавление исключения обратного цикла для установщика приложений
Из-за сетевой изоляции приложения Windows 10, такие как установщик приложений, ограничены использованием IP-адресов обратной связи, таких как http://localhost/. При использовании локального сервера IIS установщик приложений должен быть добавлен в список исключений из цикла.
Для этого откройте командную строку в качестве Администратор istrator и введите следующее:
CheckNetIsolation.exe LoopbackExempt -a -n=microsoft.desktopappinstaller_8wekyb3d8bbweЧтобы убедиться, что приложение добавляется в список исключений, используйте следующую команду, чтобы отобразить приложения в списке исключений из цикла:
CheckNetIsolation.exe LoopbackExempt -sВы должны найти microsoft.desktopappinstaller_8wekyb3d8bbwe в списке.
После завершения локальной проверки установки приложения с помощью установщика приложений можно удалить исключение обратного цикла, которое вы добавили на этом шаге:
CheckNetIsolation.exe LoopbackExempt -d -n=microsoft.desktopappinstaller_8wekyb3d8bbweШаг 9. Запуск веб-приложения
Создайте и запустите веб-приложение, нажав кнопку запуска на ленте VS, как показано на рисунке ниже:

Веб-страница откроется в браузере:

Щелкните ссылку на веб-странице, чтобы запустить приложение установщика приложений и установить пакет приложения Для Windows 10.
Устранение неполадок
Недостаточно привилегий
Если при запуске веб-приложения в Visual Studio отображается ошибка, например «У вас нет достаточных прав доступа к веб-сайтам IIS на компьютере», вам потребуется запустить Visual Studio от имени администратора. Закройте текущий экземпляр Visual Studio и снова откройте его в качестве администратора.
Настройка начальной страницы
Если при запуске веб-приложения браузер загружается с http 403.14 — запрещенная ошибка, это связано с тем, что веб-приложение не имеет определенной начальной страницы. См. шаг 6 в этом руководстве, чтобы узнать, как определить начальную страницу.