У нас есть веб-ферма win 2012 / IIS 8.5, работающая с использованием общей конфигурации. Все отлично работало на серверах, и мы создавали сайт на одном сервере, и он работал на всех. Мы столкнулись с проблемой с серверами, и нам пришлось изменить некоторые из них на локальные конфигурации, прежде чем возвращать их обратно к общей конфигурации.
Проблема, с которой мы столкнулись, заключалась в том, что мы не могли запускать сайты, поэтому это была серьезная проблема. В то время мы подозревали, что это было связано с тем, как мы использовали DFS для обмена конфигурацией между серверами, и, возможно, IIS обращался к файлам конфигурации, когда DFS касалась их. Мы попробовали пару вещей и в итоге вернули серверы к предыдущей конфигурации IIS (из-за проблем с повреждением и невозможности запускать сайты), и нам пришлось настроить новый общий ресурс DFS.
У нас возникает проблема, когда мы создаем новый сайт в ферме, сайт запускается на web01, но зависает при запуске на оставшихся серверах. Когда мы пытаемся нажать кнопку "Пуск" на одном из сайтов, мы получаем сообщение об ошибке.
при выполнении этой операции произошла ошибка. Подробности: идентификатор объекта не представляет действительный объект. (исключение из HRESULT: 0x800710D8)
Когда я редактирую привязку любого сайта на сервере (тот, на котором сайты застряли при запуске) и применяю изменения, я могу запустить все проблемные сайты.
У кого-нибудь есть идеи относительно того, в чем может быть причина и как ее решить?
Спасибо
Отключите общую конфигурацию на всех серверах - это приведет к их временному разделению и каждому сохранению собственной конфигурации - это нормально.
Экспортируйте iisConfigurationKey и iisWasKey из web01 и импортируйте на все остальные серверы - эти ключи шифрования необходимо синхронизировать в ферме для работы общей конфигурации. Если вы создали другие серверы путем клонирования web01, то в этом нет необходимости.
Экспорт:
C:\windows\Microsoft.NET\Framework64\v2.0.50727\aspnet_regiis.exe -px "iisConfigurationKey" C:\iisConfKey.xml -pri
C:\windows\Microsoft.NET\Framework64\v2.0.50727\aspnet_regiis.exe -px "iisWasKey" C:\iisWasKey.xml -pri
Импортировать:
C:\windows\Microsoft.NET\Framework64\v2.0.50727\aspnet_regiis.exe -pi "iisConfigurationKey" C:\iisconfkey.xml -exp
C:\windows\Microsoft.NET\Framework64\v2.0.50727\aspnet_regiis.exe -pi "iisWasKey" C:\iisWasKey.xml -exp
Настройте общий сетевой ресурс, и все серверы могут использовать его для доступа к общей конфигурации, как подробно описано. Вот.
На первом сервере (web01) экспортируйте конфигурацию - поместите ее в это сетевое расположение (не используйте ключ шифрования, который вы используете при экспорте).
На первом сервере (web01) снова переключитесь в режим общей конфигурации - определив то же сетевое расположение - введите ключ шифрования, если будет предложено.
Теперь сделайте то же самое на всех других веб-серверах, снова переключитесь в режим общей конфигурации - определив то же сетевое расположение - введите ключ шифрования, если будет предложено.
Перезагрузите их все.
Теперь управляйте конфигурацией через web01, и она должна корректно отображаться на других серверах.