Что такое папка aspnet_client для структуры IIS?
Я замечаю, что часто существует папка aspnet_client в стандартной структуре веб-папок IIS. Для чего это используется? Это необходимо?
Ответы
Ответ 1
В .NET 1.1 днях и ранее эта папка предоставила ASP.NET поддержку JavaScript для элементов проверки и других функций. Если у вас нет сайта .NET 1.1 или старше, его следует удалить. Я бы сначала переименовал его, чтобы убедиться, что это не вызывает никаких проблем.
Ответ 2
В дополнение к тому, что говорили другие, он обычно создается инструментом aspnet_regiis, который может быть (повторно) запущен такими вещами, как компоненты Windows Update/AddRemove Windows/IIS. Поэтому иногда даже если вы удаляете его, он может вернуться случайно. Возможно, есть способ остановить это поведение, но я его не нашел (возможно, изменение версии приложения на .NET 2 сделало бы это на самом деле).
Поэтому, если вы не используете определенные функции .NET 1.0/1.1 (проверка, интеллектуальная навигация и т.д.), вы можете удалить его без каких-либо проблем, просто не удивляйтесь, если он вернется!
Ответ 3
aspnet_client - это папка для "ресурсов, которые должны обслуживаться через HTTP, но устанавливаются для каждого сервера, а не для каждого приложения".
Некоторые из использования aspnet_client включают хранение ресурсов (например, JavaScript, изображений) для:
- JavaScript для элементов управления ASP.NET Web Forms при использовании проверки на стороне клиента (в основном, для обработки старых браузеров, таких как IE5, похоже)
- ASP.NET 2.0 (до версии 4.0) для "Глобальных тем" (глобально для всех сайтов на сервере, то есть)
- некоторые версии Crystal Reports
Вероятно, в будущем будет/будет использоваться (ab) использование этой папки. Разумеется, поскольку в нем содержатся вещи, которые "необходимы для правильного запуска приложения", но которые "не должны быть развернуты приложением", это останется чем-то вроде кошмара для разработчиков и системных администраторов.
Кажется, что 'prototype' для содержимого папки находится в C:\inetpub\wwwroot \, и представляется разумным предположить, что если на каком-либо сайте IIS отсутствует ресурс /aspnet _client, тогда IIS попытается сделать правильная вещь и... как последнее средство... создайте физическую папку в корневой папке веб-сайта и скопируйте туда файлы. Кажется, что IIS сделает это, по крайней мере, когда "ASPNET_regiis/c" вызывается на определенном сервере, что, вероятно, происходит автоматически на некоторых критических стыковках... например, когда обновления .NET Framework применяются к серверу, который имеет роль IIS.
Стратегии обработки каталога aspnet_client включают:
* указание виртуального каталога, сопоставленного с C:\inetpub\wwwroot, в надежде, что IIS откажется от создания физического каталога
* время от времени удаляйте физический каталог, если вы уверены, что ваш сайт ему не нужен, и это действительно беспокоит вас
* игнорирование aspnet_client
* запускать "ASPNET_regiis/c" самостоятельно, если вам не хватает папки, и вам нужно
Возможно, самое главное, как разработчик, вы должны четко понимать и документировать зависимости ваших приложений от каталога aspnet_client и следить за тем, чтобы ваша процедура установки имела соответствующие инструкции для обеспечения того, чтобы каталог существовал. Тем не менее, вам, вероятно, не стоит позаботиться о том, чтобы на самом деле предоставить каталог как часть вашего упакованного веб-приложения или веб-сайта - как вы могли бы это сделать для каждой версии платформы .NET, которую сервер увидит в течение всего срока действия вашего приложения?!
Некоторые ссылки, на которые я вернусь позже:
Ответ 4
В нем также есть определенные значки и скрипты, необходимые для корректной работы отчетов о кристаллах даже в версиях ниже 1.1
Ответ 5
Обычно папка хранит Javascript на стороне клиента, который ASP.NET использует для таких вещей, как проверка.
Безопасно удалять.
Ответ 6
Полагаю, что я добавил бы это здесь, поскольку это ссылка, на которую я постоянно обращался, когда я искал этот вопрос. По-видимому, с .NET 4.0 и новее эта папка больше не нужна и может быть удалена без проблем.