Что происходит, когда я редактирую web.config?

79

Мне нужно отредактировать файл web.config в действующей среде Sharepoint, но я не уверен, что произойдет, если я это сделаю (я хочу выводить собственные ошибки).

Приведет ли это к перезапуску рабочего процесса IIS6?

Потеряют ли из-за этого активные пользователи свое состояние сеанса?

Или можно смело редактировать файл?

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

Ответы:

78

Пул приложений перезапустится, и состояние сеанса будет потеряно. Представьте, что каждое приложение ASP.NET (как определено в IIS) - это программа на рабочем столе. Сохранение web.config будет делать что-то похожее на закрытие программы и ее повторное открытие.

Дэн Гольдштейн
источник
10
Не уверен насчет IIS6, но в IIS7 и IIS8 это поведение по умолчанию , хотя вы можете изменить его через Пулы приложений> Дополнительные параметры> Повторное использование> Отключить повторное использование для изменений конфигурации = true, что полезно для производственных сред, например, чтобы администраторы могут вносить изменения, которые не должны вступать в силу до следующего повторного использования. Я полагаю, что с помощью Sharepoint можно запланировать изменения, чтобы они применялись в определенное время.
ничего не нужно
3
@nothingisneeded Но вызывает ли Application Pools > Advanced Options > Recycling > Disable recycling сама настройка перезапуск пула приложений? Черепахи до упора?
D'Arcy Rittich
1
Привет, @DanGoldstein. Вы упоминаете « нечто похожее » на закрытие программы и ее повторное открытие. А как насчет статического состояния? Является ли статическое состояние обеспечивается , чтобы быть уничтожены с помощью web.config редактирования? Причина в том, что я кэширую некоторые файлы web.config в статических переменных.
Dirk Boer
Честно говоря, я больше не являюсь хорошим источником информации об этом. Когда я ответил, я все время использовал IIS и ASP.Net. В наши дни я просто увлекаюсь разработкой программного обеспечения.
Дэн Голдштейн
@DirkBoer Я здесь только для того, чтобы найти окончательный ответ на ваш вопрос. По моему опыту, редактирование web.config не влияет на статические свойства.
Alex Dresko
9

Кроме того, если состояние сеанса настроено как внепроцессное (база данных или служба), то повторное использование пула приложений не приведет к потере состояния сеанса. Это так же верно для Sharepoint, как и для ванильного ASP.Net.

пирсы7
источник
2

Когда вы редактируете web.config, он перезапускает AppDomain (НЕ AppPool) этого веб-приложения и очищает все занятые ресурсы и память. Таким образом, другие веб-приложения, работающие в этом пуле приложений, не пострадают. Также он очистит сеансы (в процессе) и кеш памяти.

Джей Шах
источник
1

Как уже упоминалось некоторыми людьми: пул приложений сайта в IIS перезапустится (обычно это занимает пару секунд). В результате запрос следующей страницы будет медленнее (так как ничего больше не будет кэшироваться). Также будет потеряно состояние сеанса пользователей; НО в состоянии сеанса WSS по умолчанию не используется, в MOSS используется InfoPath Form Services. Так что, возможно, у вас нет больших проблем, связанных с потерей состояния сеанса.

На другой стороне; для решения этих проблем: обычно создается решение SharePoint (WSP), которое развертывает и запускает задание таймера для внесения изменений в файл web.config из кода (с использованием класса SPWebConfigModification объектной модели). Приятно то, что вы можете запланировать выполнение изменения, чтобы ваши пользователи его не заметили.

Ян Тиленс
источник