FAQ ASP.NET/C#
FAQ ASP.NET/C#Consultez toutes les FAQ
Nombre d'auteurs : 39, nombre de questions : 371, dernière mise à jour : 15 juin 2021
- Que faut-il installer et dans quel ordre pour faire de l'ASP.NET ?
- Mes webforms ne s'affichent pas et pourtant leur propriété Visible est à true !
- J'ai des problèmes d'installation sur un serveur contrôleur de domaines. Que faire ?
- J'ai le message : "impossible de verrouiller le fichier ..."
- J'ai un message d'erreur à l'ouverture de VS.NET concernant la version d'ASP.NET, à quoi cela est-il dû ?
- Est il possible de faire cohabiter plusieurs versions du framework sur une même machine ?
- J'ai copié l'application sur une machine mais la page est introuvable, que faire ?
- Je ne trouve pas d'utilisateur ASPNET sur Windows 2003. Que dois-je faire ?
- J'utilise Access et j'obtiens l'exception suivante: "L'opération doit utiliser une requête qui peut être mise à jour" lors d'un INSERT ou d'un UPDATE. Que faire ?
- Mon navigateur me demande si il faut afficher ou télécharger la page lors de l'appel d'un fichier .aspx. Est-ce normal?
Pour pouvoir faire de l'ASP.NET, je vous conseille d'installer les divers composants dans l'ordre suivant :
1)Installer IIS
2)Installer la dernière version de MDAC
3)Installer le dernier service pack pour votre version de windows
4)Installer la dernière version du framework .NET
5)Faire toutes les mises à jours nécessaires pour windows, IIS et le framework .NET
Je n'ai jamais vu de problème si on installe les divers composants dans cet ordre là.
Si ce problème vient aprés l'installation du framework, c'est que vous n'avez surement pas installé les divers composants dans l'ordre conseillé
ici.
Mais pas de panique il existe un moyen simple pour remédier à ça ;-)
1)Ouvrez la console de commande
2)Allez dans le répertoire courant du framework .NET : $SYSTEMROOT\Microsoft.NET\Framework\v1.********\
3)Exécutez : aspnet_regiis.exe -i
Lien : Que faut-il installer et dans quel ordre pour faire de l'ASP.NET
Ce problème existe avec le framework .NET 1.0, Ce bug a été corrigé dans le framework .NET 1.1. Si vous installez IIS et le framework .NET sur un serveur controleur de domaine, vous aurez une erreur :
"Server Application Unavailable
The web application you are attempting to access on this web server is currently unavailable. Please hit the "Refresh" button in your web browser to retry your request.
Administrator Note: An error message detailing the cause of this specific request failure can be found in the system event log of the web server. Please review this log entry to discover what caused this error to occur."
Et dans le journal d'erreurs de IIS, deux erreurs :
"aspnet_wp.exe could not be launched because the username and/or password supplied in the processModel section of the config file are invalid."
"aspnet_wp.exe could not be started. HRESULT for the failure: 80004005 "
La solution consiste à créer un compte avec les droits nécessaires, éditer le fichier machine.conf et dans le <processModel> mettre à username le nom du compte créé. Une solution plus simple consite à mettre SYSTEM comme username mais cela implique que votre process asp_wp.exe aura des droits d'admin sur votre serveur ce qui n'est pas conseillé au niveau de la sécurité.
Ce problème arrive fréquemment, lorsqu'on déploie un site en utilisant Access comme SGBD.
Lorsque l'on installe la version redistribuable du framework .NET sur une machine, les droits du user ASPNET sont plus restreints que lorsqu'on installe le sdk du
framework et un IDE. Par défaut, le user ASPNET n'a pas les droits d'écriture sur le répertoire dans lequel se trouve votre fichier .mdb. Le compte ASPNET, qui
accède à la base via OleDB, ne peut donc pas, par défaut, créer le fichier .ldb qui permet la gestion des verrous sous access. D'où le message d'erreur !
La solution consiste à donner des droits en écriture sur le répertoire où se trouve le fichier .mdb au user ASPNET.
Attention : pour des raisons de sécurité, il vaut mieux "isoler" le .mdb de votre base access dans un répertoire. Vous limitez ainsi les dommages en
cas de hack du compte utilisateur ASPNET.
Si à l'ouverture de VS.NET vous obtenez le message d'erreur suivant:
"Visual Studio a détecté que le serveur Web indiqué n'exécute pas la version 1.1 de
ASP.NET. Vous ne seriez pas en mesure d'exécuter les applications ou les services
Web ASP.NET.", il suffit d'exécuter, en ligne de commande, "aspnet_regiis -i".
Cet exécutable se trouve dans le répertoire du Framework, à savoir "c:\windows\Microsoft.NET\Framework\v1.1.XXXX"
où XXXX peut varier.
Il est tout à fait possible d'installer un framework version 1 et un version 2 sur la même machine sans aucun souci. Attention, à l'heure actuelle, la désinstallation d'une version 2 peut poser problème (suppression d'éléments nécessaires pour faire fonctionner une version 1).
La plupart du temps, cela est dû au fait que le répertoire virtuel n'a pas été
créé. Effectivement, l'habitude de l'utilisation d'environnements de développement
tels que Visual Studio font que les bonnes habitudes ont tendance à se perdre ;)
Concrètement, lorsque Visual Studio crèe une application, il crée un répertoire
dans le dossier InetPub\wwwroot (par défaut) ainsi qu'un répertoire virtuel dans IIS.
Pour l'effectuer de manière manuelle, il suffit de se rendre dans les outils d'administration,
cliquer sur "Services Internet (IIS)".
Enfin, pour finir, vous devriez voir "Site Web > Site Web par défaut"... Si c'est bien le cas,
un simple clic droit vous ouvrira un menu contextuel permettant d'ajouter un nouveau répertoire
virtuel. Il ne reste plus qu'à choisir le répertoire et à lui donner les droits.
Nous sommes parfois amenés à réaliser des applications sous Windows Xp pour ensuite les porter en production sur un Windows 2003. Souvent aussi, nous donnons les droits à l'utilisateur ASPNET d'exécuter des procédures stockées en faisant un GRANT ... TO ASPNET. Malheureusement, ASPNET n'existe plus sous Windows 2003. Il est remplacé par IIS_WPG. Il faut donc donner les droits à IIS_WPG au lieu de ASPNET.
L'utilisateur ASPNET ne peut accéder aux répertoires, pour des raisons de sécurité, que si vous l'avez autorisé de manière explicite. Il est donc nécessaire de donner les droits à ASPNET pour le répertoire dans lequel se trouve votre fichier Access.
Normal? Si connaître la raison permet de dire que c'est normal, alors oui.
IIS ne sait pas faire le mapping entre l'extension et l'action à effectuer. Cela peut être dû à plusieurs raisons, la plus fréquente étant le fait d'avoir réinstallé IIS après avoir installé ASP.NET.
Pour corriger le problème, utilisez l'utilitaire aspnet_regiis.exe.