Все мои веб-сайты 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
.
Это было бы моим последним средством, поскольку я не решаюсь бросить свой собственный, когда я уже знаю, что Я хочу, чтобы это уже было сделано для некоторых других расширений.
Так можно ли добавить другие файлы зависимостей к тем, за которыми ведется наблюдение? Или мне придется самому катить?
Любой совет, как всегда, очень признателен