IIS7 не отслеживает изменения по символическим ссылкам
Я использовал утилиту mklink для создания символической ссылки на каталог веб-контента. IIS7 не "видит" изменения в каких-либо классических файлах ASP в этом связанном каталоге без выдачи iisreset. Я отключил кэширование, и изменения в файлах регистрируются в других статических файлах (таких как.html), но файлы.asp игнорируются.
3 ответа
Это ответ, который вы ищете.
https://stackoverflow.com/questions/6698481/caching-problem-with-symlinks-on-iis-7-5
IIS не знает, когда файл по символической ссылке был изменен Visual Studio. Но вы можете сказать iis не кэшировать локальные файлы в памяти. Использовать только в среде разработки... на производстве, вам следует перезапускать пул после обновления, если вы используете символическую ссылку.
Это либо известно, либо по замыслу (выберите эвфемизм "оно не работает так, как вы думаете"). В iis7 вы должны использовать виртуальные каталоги, чтобы указывать на одну и ту же физическую папку для достижения того, что вы хотите.
Проблема с этим ответом состоит в том, что если вы используете виртуальный каталог для указания на физическое местоположение контента, то этот контент находится на уровне каталога.
Предположим, что вы хороший разработчик и используете контроль версий. Предположим, что вы настроили интегрированную клиент-серверную среду, где VSS используется на сервере, а разработчики используют Visual Studio на клиентах. Таким образом, разработчик извлекает asp-файл из VSS, вносит изменения и хочет проверить его на клиенте, прежде чем возвращать его для тестирования интеграции на сервере. Вы не хотите, чтобы разработчик копировал файл в wwwroot, поэтому у вас есть виртуальный каталог, сопоставленный с каталогом VS Websites. Основная проблема возникает из-за web.config, который управляет базами данных и менеджерами отчетов, а также всем остальным дерьмом MS, которое использует сайт. Файл web.config в VSS правильно указывает на среду тестирования интеграции серверов, где все изменения разработчиков тестируются после завершения модульного тестирования на их клиентах. Ну, у iis нет пути поиска для web.config, который мог бы переопределить web.config, который является частью проекта VSS, который был извлечен в VS. Здесь будут использоваться символические ссылки. Каталог приложения wwwroot будет содержать локальную копию web.config, которая указывает на среду разработки клиента и содержит символические ссылки для файлов, которые находятся под контролем VSS через VS.
Это так просто сделать в linux и любой другой разновидности unix, потому что символические ссылки существуют всегда, потому что сценарий и другие подобные ему, которые я описал, настолько распространены.