web-dev-qa-db-fra.com

A quoi sert le dossier aspnet_client sous le IIS structure?

Je remarque qu’il existe fréquemment un dossier aspnet_client dans la structure de dossiers Web IIS standard. À quoi sert-il? Est-ce nécessaire?

104
Guy

Dans les jours .NET 1.1 et précédents, ce dossier fournissait à ASP.NET la prise en charge de JavaScript par les contrôles de validation et d'autres fonctionnalités. Si vous ne possédez pas de site .NET 1.1 ou plus ancien, vous pouvez le supprimer en toute sécurité. Je le renommerais d'abord pour m'assurer qu'il ne pose aucun problème.

87
Duncan

En plus de ce que d'autres ont dit, il est généralement créé par l'outil aspnet_regiis, qui peut être (ré) exécuté par des outils tels que Windows Update/AddRemove Windows Components/IIS. Donc parfois même si vous le supprimez, il peut revenir au hasard. Il existe peut-être un moyen d’arrêter ce problème, mais je ne l’ai pas trouvé (changer la version de l’application en .NET 2 le ferait effectivement).

Donc, à moins que vous n'utilisiez certaines fonctionnalités de .NET 1.0/1.1 (validation, navigation intelligente, etc.), vous pouvez le supprimer sans aucun problème, mais ne soyez pas trop surpris s'il revient!

64
spmason

aspnet_client est un dossier pour "les ressources devant être servies via HTTP, mais installées serveur par serveur plutôt que par application".

Aspnet_client permet notamment de stocker des ressources (par exemple, JavaScript, des images) pour:

  • JavaScript pour les contrôles Web Forms ASP.NET lors de l’utilisation de la validation côté client (principalement pour manipuler les anciens navigateurs comme IE5, semble-t-il)
  • ASP.NET 2.0 (jusqu'au Framework 4.0) pour les "thèmes globaux" (globalement pour tous les sites sur un serveur)
  • certaines versions de Crystal Reports

Il y aura probablement d'autres utilisations de ce dossier dans le futur. Il va sans dire que, puisqu'il contient des éléments "nécessaires au bon fonctionnement de l'application" mais "qui ne sont pas censés être déployés par l'application", cela restera un cauchemar pour les développeurs et les administrateurs système.

Il semble que le "prototype" du contenu du dossier se trouve dans C:\inetpub\wwwroot \, et il semble raisonnable de supposer que si un site Web donné IIS ne dispose pas de la ressource/aspnet_client, alors IIS essaiera de faire ce qui s'impose et ... en dernier recours ... créera un dossier physique dans le dossier racine du site Web et y copiera les fichiers. Il semble que IIS le fasse au moins lorsque "ASPNET_regiis/c" est appelé sur un serveur donné - ce qui se produit probablement automatiquement à certains moments critiques ... comme lorsque les mises à jour .NET Framework sont appliquées à un serveur doté du IIS rôle.

Les stratégies de gestion du répertoire aspnet_client sont les suivantes: * Spécifiant un répertoire virtuel mappé sur C:\inetpub\wwwroot dans l’espoir que IIS ne crée plus de répertoire physique .__ *, supprimant le répertoire physique de temps à autre. temps si vous êtes sûr que votre site n'en a pas besoin et qu'il vous dérange vraiment * ignorer aspnet_client * exécuter vous-même "ASPNET_regiis/c" si vous manquez le dossier et en avez besoin

Probablement le plus important, en tant que développeur, vous devez clairement comprendre et documenter les dépendances de vos applications sur le répertoire aspnet_client et vous assurer que votre procédure d’installation contient les instructions appropriées pour vous assurer que le répertoire existe. Cependant, vous ne devriez probablement pas vous préoccuper de fournir le répertoire dans le cadre de votre application Web ou de votre site Web empaqueté - comment pouvez-vous le faire pour chaque version du framework .NET que le serveur verra au cours de la vie de ton application?!

Quelques liens sur lesquels je reviendrai plus tard:

14
David Bullock

Certaines icônes et certains scripts sont également nécessaires au bon fonctionnement de Crystal Reports, même dans les versions ultérieures à 1.1.

8
ashim

Le dossier sert généralement à stocker du code Javascript côté client, utilisé par ASP.NET pour des tâches telles que la validation.

Il devrait être sûr de supprimer.

3
JamesSugrue

Je me suis dit que j'ajouterais ceci car c'est le lien vers lequel je me dirigeais quand je cherchais cette question dans Google. Apparemment, avec .NET 4.0 et plus récent, ce dossier n’est plus nécessaire et peut être supprimé sans problème.

1
David

Si vous utilisez Installshield pour configurer le site Web ASP.net, sachez que cette fonctionnalité était présente dans Installshield 2010 et manquante dans Installshield 2012 . Installshield 2010 Vs 2012

0
Vishnu Prasanth