Для чого потрібна папка aspnet_client під структурою IIS?


108

Я зауважую, що часто існує папка aspnet_client під стандартною структурою веб-папок IIS. Для чого це використовується? Це потрібно?

Відповіді:


91

У .NET 1.1 дні і раніше ця папка забезпечувала ASP.NET підтримкою JavaScript для контролю перевірок та інших функцій. Якщо у вас немає сайту .NET 1.1 або старшої версії, його слід безпечно видалити. Я б перейменував її спочатку, щоб переконатися, що це не викликає проблем.



Навіть якщо ви перебуваєте поза .Net 1,1 дня, ви можете використовувати Crystal Reports, які, на жаль, все ще використовують згадану папку (і, ймовірно, є й інше програмне забезпечення з такою ж поведінкою). Тож, принаймні, зробіть резервну копію перед видаленням папки
Вадим Левковський

66

На додаток до того, що говорили інші, він, як правило, створюється інструментом aspnet_regiis, який може (повторно) запускатися такими речами, як Windows Update / AddRemove компоненти Windows / IIS. Тому іноді навіть якщо ви видалите його, воно може повернутися випадковим чином. Можливо, є спосіб зупинити цю поведінку, але я її не знайшов (можливо, зміна версії програми на .NET 2 зробить це фактично).

Тож якщо ви не використовуєте певні функції .NET 1.0 / 1.1 (перевірка, розумна навігація тощо), ви можете їх видалити без проблем, просто не здивуйтеся, якщо він повернеться!


28
Я знаходжу це повертається періодично. Найбільше засмучує те, що щоразу він повертається, він ламає WebDeploy, оскільки обліковий запис, під яким він працює, не має доступу для видалення створеної папки aspnet_client!
Russ Cam

5
@RussCam У мене точно така ж проблема. Він порушує WebDeploy з тієї ж причини. Хтось знайшов спосіб зупинити створення цієї папки випадковим чином?
тугберк

4
Я просто невинно встановив DotNet Framework 4.5, і через короткий час наше розгортання WebDeploy (запущене через TeamCity) зламалось з однієї причини. Папка Darn знову повернулася в результаті встановлення 4.5. Хтось, будь ласка, зупиніть його.
Michael12345

2
Зараз я вдався фактично додати ці папки до нашого пакету розгортання, щоб TeamCity не намагався їх видалити. Схоже, це забруднює нашу кодову базу, але, сподіваємось, це зупинить боротьбу за владу між ASP.NET та розгортанням нашої програми.
Michael12345

1
Я також серйозно роздратований тим, що ця папка постійно повертається, у нас немає сайтів asp.net 1.x, але, мабуть, кожне автоматичне оновлення Windows поміщає цю криваву папку на кожен сайт, так що порушує всі мої веб-розробки. Я погоджуюся з @ Michael12345, що це не чудове рішення для додавання марних папок в SC, просто для того, щоб розгортання продовжували працювати, і не потрібно вручну виправляти щопонеділок після оновлень виграшів у вихідні, додайте його знову на кожен сайт (з неправильними ACL-perms) . Дратівливий!
MemeDeveloper

15

aspnet_client - це папка для "ресурсів, які повинні обслуговуватися через HTTP, але встановлені на основі кожного сервера, а не на основі додатка".

Деякі з видів використання aspnet_client включають збереження ресурсів (наприклад, JavaScript, зображення) для:

  • JavaScript для управління веб-формами ASP.NET при використанні перевірки на стороні клієнта (головним чином, для управління старими браузерами, такими як IE5, здається)
  • ASP.NET 2.0 (поки не в рамках 4.0) для "Глобальних тем" (глобальних для всіх сайтів на сервері, тобто)
  • деякі версії Crystal Reports

Можливо, надалі (знов) будуть використовувати цю папку в майбутньому. Потрібно сказати, оскільки він містить речі, "необхідні для правильної роботи програми", але які "не повинні розгортатися додатком", це залишатиметься кошмаром як для розробників, так і для системних адміністраторів.

Здається, що "прототип" вмісту папки знаходиться в 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 Framework, яку сервер бачитиме впродовж вашої програми ?!

Деякі посилання, до яких я повернусь пізніше:


тому якщо ви додасте папку aspnet_client під wwwroot, її вміст буде скопійовано у кожен встановлений вами веб-додаток, я думаю
Джордж Бірбіліс

8

Він також має певні піктограми та сценарії, необхідні для належного запуску кристалічних звітів навіть у версіях пізніше 1.1


Йах, знайшов це важким шляхом. Я перемістив наш екземпляр Ripplestone з віртуального каталогу під веб-сайтом за замовчуванням на власний веб-сайт, і в Ripplestone все почало дивно ламатися. Я переглянув консоль javascript і побачив, що він шукає речі під C:\inetpub\wwwroot\aspnet_client\system_web\4_0_30319\crystalreportviewers13 Не знаю, правильно це робити чи ні, але я просто скопіював всю папку aspnet_client з кореня в каталог, в якому жив мій екземпляр Ripplestone.
Адам Нофсінгер

3

Зазвичай папка призначена для зберігання клієнтського Javascript, який ASP.NET використовує для таких речей, як перевірка.

Видалити його слід безпечно.


1

Подумав, що я додам це сюди, оскільки це посилання, на яке я продовжував спрямовуватися, коли переглядав це питання. Мабуть, з .NET 4.0 і новішими ця папка більше не потрібна і її можна видалити без проблем.


0

Якщо ви використовуєте Installshield для налаштування веб-сайту ASP.net, пам’ятайте, що ця функція присутня в Installshield 2010 та відсутня в Installshield 2012. Installshield 2010 Vs 2012


Деякі функції в IS2010 відсутні. Спробуйте більше попередніх версій.
Вішну Прасант
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.