Что такое папка 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 и новее эта папка больше не нужна и может быть удалена без проблем.