Meilleur auteur de réponses
[ASP.Net] Trace de connexion

Question
-
Bonjour tout le monde,
En suivant les instructions de l'atelier 10 du coach Microsoft, "Administrer et instrumenter l'application", j'ai inséré ceci dans mon web.config, section system.web/healthmonitoring/rules :
<add name="Success Audits" eventName="Success Audits" provider="EventLogProvider" profile="Default" minInstances="1" maxLimit="Infinite" minInterval="00:01:00" custom="" />
Or je n'ai rien vu dans le log concernant une authentification réussie.
J'ai pu en revanche réaliser un traitement lié à cet événement en utilisant une procédure événementielle du contrôle Login.
Dois-je comprendre que la plateforme a évolué depuis la rédaction du coach (nous sommes bien d'accord que je développe sous .Net 2), ou est-ce moi qui me suis trompé quelque part ?
Les échecs d'authentification et les démarrages et arrêts de l'application, eux, sont bien enregistrés suite aux instructions du coach.
Windows XP Home SP3, Visual Studio 2005 Professional Edition, Sql Express 2008, Internet Explorer 8.
J'aurais bien essayé de regarder ce que donne la solution de l'atelier, mais elle me donne cette erreur :
Erreur 10 L'utilisation d'une section inscrite
comme allowDefinition='MachineToApplication'
au-delà du niveau d'application est une erreur.
Cette erreur peut provenir d'un répertoire virtuel
non configuré en tant qu'application dans IIS.
C:\Sites\AffairesSansRisque6sol\AffairesSansRisque\web.config
29
La suppression du projet XmlMembershipServices n'a rien résolu.
Réponses
-
Bonjour
A priori des autres ont déjà eu le même problème.
Cordialement,
- Modifié Aurel Bera lundi 3 juin 2013 07:13
- Marqué comme réponse Gloops lundi 3 juin 2013 09:30
-
J'ai repris l'atelier, en commençant par effacer la section healthMonitoring. J'ai retiré les procédures événementielles du contrôle Login.
Par défaut, ce service healthMonitoring est géré par le web.config de niveau machine, dans le répertoire du framework.
Les eventMappings y sont définis tant pour Success Audits que pour Failure Audits. En revanche au niveau "rules", nous retrouvons Failure Audits, mais pas Success Audits. Ce qui fait qu'en ne mettant pas de section healthmonitoring dans le web.config de l'application, nous obtenons un compte-rendu des échecs de connexion, et pas des réussites.
Même chose si je me contente de mettre la section avec l'attribut enabled="true", et rien dans la section.
Si je mets enabled="false", comme on peut s'y attendre, aucun événement n'est enregistré.
Avec enabled="true", si maintenant je veux enregistrer les connexions réussies, il n'est pas nécessaire de mettre un webMapping puisqu'il est déjà défini dans le web.config du niveau machine, en revanche dans les rules, il faut ajouter un élément qui reprend le eventName="Success Audits". Son nom (attribut name) peut être par exemple "Success Audits Default". Je n'ai pas essayé autre chose comme nom mais je ne m'attends pas à ce qu'une orthographe diférente ait une incidence sensible, en revanche si je ne me trompe l'attribut eventName de la rule renvoie à l'attribut name de l'eventMapping.
- Marqué comme réponse Gloops dimanche 16 juin 2013 17:57
Toutes les réponses
-
Bonjour
A priori des autres ont déjà eu le même problème.
Cordialement,
- Modifié Aurel Bera lundi 3 juin 2013 07:13
- Marqué comme réponse Gloops lundi 3 juin 2013 09:30
-
OK merci, voilà qui s'adresse donc à ma deuxième question, celle sur la solution proposée avec le coach.
La mise en œuvre est un peu déroutante. Au premier chargement, la chaîne de connexion se crypte pendant le chargement, et elle reste cryptée après ceci :
C:\Sites\AffairesSansRisque6>aspnet_regiis /pd connectionStrings Déchiffrement de la section de configuration... Succès !
Et d'ailleurs il ne m'est pas proposé de recharger web.config.
Je colle dans le web.config la section en clair que je récupère dans le projet que j'étais en train de développer, et cette fois ça marche.
Je précise que ce problème ne se pose pas si je charge la solution complète.
Une fois le projet correctement chargé, et la section indiquée dans ma première question insérée, effectivement l'observateur d'événements fait apparaître non seulement une connexion en échec mais aussi une connexion réussie. Donc, maintenant, ce qu'il me reste à faire est de relire tout ça pour assimiler, car je me rends bien compte que je me suis trompé quelque part, mais je ne sais toujours pas où.
Il me reste une question : puisque la clause add name="Success Audits" impose de ne charger que le projet avec le site, j'imagine qu'elle n'est pas compatible avec un projet qui fait appel à un service ? Ou du moins qu'elle impose d'ouvrir le service à partir d'une autre instance de Visual Studio ?
Est-ce lié à une évolution ? Car le coach ne me paraît pas mentionner cette contrainte, ou alors peut-être ai-je lu trop vite.
-
Cette méthode d’ouvrir le site s'applique bien pour des petits projets.
Normalement on utilise un serveur IIS et on configure l'application dans IIS – si c’est le cas une application web pour le projet et une autre pour le web service, par exemple.
Apres ça, vous pouvez charger la solution avec plusieurs projets dans le VS.
Cordialement,
-
Oui enfin le serveur IIS est mis en œuvre surtout au niveau de l'hébergement, non ?
Tant qu'on en est au niveau du développement, le coach indique de créer un deuxième projet dans la solution pour le service, et jusque là ça marchait très bien, c'est quand j'ai voulu ajouter add name="Success Audits" que ça s'est gâté.
D'où ma question de savoir si il y a un lien de cause à effet entre les deux ...
-
Oui enfin le serveur IIS est mis en œuvre surtout au niveau de l'hébergement, non ?
Je dirais non. Dans les anciennes versions Visual Studio, c'était nécessaire pour développer des appli Web. Maintenant, pour les applications simples, comme ce coach, on peut l'utiliser avec la version limitée:
http://msdn.microsoft.com/fr-fr/library/58wxa9w5.aspx
Mais pour des projets plus complexes, on a besoin d’IIS.
Cordialement,
-
Aussi, n'oubliez que ce coach a été créé pour ASP.NET 2.0, si je me rappelle bien.
Les choses sont changés un peu depuis.
Cordialement,
- Modifié Aurel Bera lundi 3 juin 2013 11:44
-
Il est vrai qu'un serveur IIS a été installé avec Visual Web Developer 2010, ça peut servir à l'occasion.
Ce que je viens de lire rapidement sur sa configuration mentionne, comme intérêt de le faire, un travail en groupe. Y a-t-il lieu d'étendre le domaine d'application ?
-
Je dirais oui.
On ne peut pas avoir une analyse exhaustive pour tous les situations. Le plus important c'est de choisir la bonne solution selon nos besoins.
Cordialement,
-
Aussi, n'oubliez que ce coach a été créé pour ASP.NET 2.0, si je me rappelle bien.
Les choses sont changés un peu depuis.
Cordialement,
Oui, nous sommes bien d'accord, quand je monte un projet WCF ou MVC, il vaut mieux la version 2010. Pas 2012 sur Windows XP car ce n'est pas compatible, c'est hélas en essayant qu'on l'apprend.
ça ne dispense pas d'être pleinement opérationnel sur les projets .Net 2, car il y a encore de la demande. Heureusement le coach est une solution disponible et digeste, et tant mieux car une petite révision de temps à autre ne gâche rien.
-
J'ai repris l'atelier, en commençant par effacer la section healthMonitoring. J'ai retiré les procédures événementielles du contrôle Login.
Par défaut, ce service healthMonitoring est géré par le web.config de niveau machine, dans le répertoire du framework.
Les eventMappings y sont définis tant pour Success Audits que pour Failure Audits. En revanche au niveau "rules", nous retrouvons Failure Audits, mais pas Success Audits. Ce qui fait qu'en ne mettant pas de section healthmonitoring dans le web.config de l'application, nous obtenons un compte-rendu des échecs de connexion, et pas des réussites.
Même chose si je me contente de mettre la section avec l'attribut enabled="true", et rien dans la section.
Si je mets enabled="false", comme on peut s'y attendre, aucun événement n'est enregistré.
Avec enabled="true", si maintenant je veux enregistrer les connexions réussies, il n'est pas nécessaire de mettre un webMapping puisqu'il est déjà défini dans le web.config du niveau machine, en revanche dans les rules, il faut ajouter un élément qui reprend le eventName="Success Audits". Son nom (attribut name) peut être par exemple "Success Audits Default". Je n'ai pas essayé autre chose comme nom mais je ne m'attends pas à ce qu'une orthographe diférente ait une incidence sensible, en revanche si je ne me trompe l'attribut eventName de la rule renvoie à l'attribut name de l'eventMapping.
- Marqué comme réponse Gloops dimanche 16 juin 2013 17:57