Что происходит, когда я редактирую 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.


2

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


1

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

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.