ASP.Net: Добавить дополнительные файлы, которые будут отслеживаться для запуска повторного цикла AppDomain

Все мои веб-сайты Asp.Net используют отдельную систему конфигурации, управляемую XML-файлами, которая отвечает за создание огромного количества объектов, используемых на всех сайтах; эффективно ряд контейнеров Uber IOC может использоваться для разрешения чего угодно, от контроллеров для сайтов MVC до служб данных и объектов конфигурации для внутреннего кода.

XML создает набор динамических методов, которые затем скрываются за фабричным интерфейсом . После загрузки и сборки эти методы не будут перестроены до тех пор, пока домен приложения не будет перезапущен.

Затем, наименьшее изменение в одном из файлов, может существенно повлиять на функциональность веб-сайта, и поэтому обновления часто могут быть развернуты как простое изменение конфигурации. Файлы могут появляться в корне веб-сайта и любой дочерней папке внутри него, но обычно не в любой из стандартных папок Asp.Net (App_LocalResources и т. Д.).

Но поскольку файлы не используют расширение, которое Asp.Net / IIS распознает как «важный» (допустим, расширение - .configfoo ), если я изменю одно из них, мне придется вручную обеспечить перезапуск домена приложения на сервере одним из следующих способов:

a) Коснитесь web.config, чтобы принудительно перезапустить домен приложения; или

b) Перекомпилируйте двоичные файлы

Я бы хотел каким-то образом указать Asp.Net/IIS включить эти файлы в свой мониторинг и рассматривать их как так же важные , как. config и файлы. dll в папке bin; запускает перезапуск домена приложения, если что-либо из них изменится.

ОБНОВЛЕНИЕ в ответ на ответ Артема

Я попытался разместить файлы либо в bin \ , либо в App_LocalResources , например, и действительно перезапускается домен приложения - это хорошая новость, но ... мне не нравится развертывание bin \ , потому что единственный способ легко обновить файл в процессе разработки - это выполнить build (если вы не копируете / вставляете вручную), и это также не соответствует концепции того, что эти файлы являются Контентом - а это то, чем они являются на самом деле, и их нужно рассматривать с точки зрения развертывания.

В равной степени, Решение App_LocalResources (и др.) Отличное, но неестественное с точки зрения разработчика - оно ' Выгрузите внутри самого сайта в соответствии с его собственными файловыми правилами. Я думаю, что сейчас предпочтительнее было бы использовать System.Web.Hosting.HostingEnvironment.InitiateShutdown .

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

Так можно ли добавить другие файлы зависимостей к тем, за которыми ведется наблюдение? Или мне придется самому катить?

Любой совет, как всегда, очень признателен

6
задан Andras Zoltan 16 February 2011 в 09:01
поделиться