У меня есть сайт IIS, и один из виртуальных каталогов фактически находится на отдельном сервере, доступ к которому осуществляется по пути UNC.
Время от времени (несколько раз в день) приложение ASP.Net перезапускается, и в журнале событий я получаю:
Сообщение о событии: приложение закрывается. Причина: конфигурация изменена.
Теперь я знаю, что конфигурация не изменилась, однако я могу воссоздать проблему в тестовой среде, временно сделав UNC-путь недоступным, а затем запросив у него файл.
Я случайно наткнулся на следующий драгоценный камень в несвязанной статье базы знаний (269009):
Microsoft не рекомендует использовать содержимое с отображением UNC на веб-сайтах с высокой емкостью.
Теперь у меня вопрос: почему MS не рекомендует использовать пути UNC и какие альтернативы мне следует использовать вместо этого?
Уведомление об изменении файла является проблемой, особенно при удаленном запуске содержимого. Я поддерживал сайты, работающие со всем контентом / кодом на удаленном ресурсе. Моя рекомендация - №2 использовать DFS для статического содержимого и размещать код локально на сервере. Это требует определенного дизайна в вашем приложении, такого как размещение изображений, файлов css, js и т. Д. В одном месте. Вот несколько статей, которые я накопил за эти годы и разместил в них.
http://www.iislogs.com/Tags/unc
вот, наверное, та статья, на которую люди ссылаются больше всего http://technet.microsoft.com/en-us/library/dd296694(v=ws.10).aspx
Доступ к файлам с диска является предпочтительным способом, поскольку он менее подвержен ошибкам и (обычно) дает вам лучшую производительность.
Я вижу здесь три решения:
A: Используйте что-нибудь, чтобы вытолкнуть новые файлы / конфигурацию из центрального репозитория. Многие используют для этого Subversion. У Microsoft также есть собственный бесплатный инструмент - Веб-развертывание
B: орудие Microsoft DFS и иметь как минимум два активных сервера с одинаковым набором файловых хранилищ на них. Это сделает его более доступным в случае аварийного переключения, но он все равно убьет ваш IIS при аварийном переключении. Для МГНОВЕННОГО аварийного переключения см. Пункт C.
C: Используйте кластер файлового сервера. Я на 99,9999% уверен, что это перебор. Вам также потребуется реализовать полностью резервную сеть.