none
Outil de configuration invalide RRS feed

  • Question

  • Bonjour tout le monde,

    Je suis en train de refaire l'atelier 5 du coach "construire un site web en 12 ateliers" : sécuriser l'application web.

    Lorsque, après avoir créé un utilisateur à l'aide du contrôle ad hoc, je clique sur l'icône pour ouvrir l'outil de configuration de membership, asp.netwebadminfiles, j'obtiens une page avec ce contenu :

    ___________________

    An error was encountered. Please return to the previous page and try again.

    The following message may help in diagnosing the problem: System.ArgumentException: The parameter 'PhysicalDirectory' is invalid. Parameter name: PhysicalDirectory at System.Web.Configuration.VirtualDirectoryMapping.set_PhysicalDirectory(String value) at System.Web.Configuration.VirtualDirectoryMapping..ctor(String physicalDirectory, Boolean isAppRoot) at System.Web.Administration.WebAdminPage.OpenWebConfiguration(String path, String appPhysPath, Boolean getWebConfigForSubDir) at System.Web.Administration.WebAdminPage.OpenWebConfiguration(String path, Boolean getWebConfigForSubDir) at System.Web.Administration.WebAdminPage.VerifyAppValid()

    ___________________

    Aouch, pas très sympathique.

    Au vu de l'observateur d'événements de Windows ça m'a donné l'occasion de corriger les mots de passe des utilisateurs dédiés de SQL Server, mais le contenu de cette page était toujours le même.

    Bon, alors je l'ai cherché sur Internet, il y avait quelque chose comme trois réponses, dont notamment celle-ci :

    Website administration tool error

    qui m'amène là :

    Always set the "applicationName" property when configuring ASP.NET 2.0 Membership and other Providers

    Les données membership, dans l'atelier du coach, étant stockées dans une base de données et non dans le web.config, j'ai transposé et je suis allé voir la table aspnet_applications. Dans le champ ApplicationName, j'ai trouvé /, et j'ai essayé en remplaçant par /AffairesSansRisque, du nom du répertoire où est stocké le site, en ayant soin de renseigner aussi LoweredApplicationName, ça n'a rien changé.

    Bon, alors j'ai chargé la solution proposée avec l'atelier, et j'ai obtenu le même résultat, ce qui me ramène à la configuration de la machine. Dommage, car elle a été refaite récemment.

    Par où j'attaque ?




    • Modifié Gloops vendredi 17 août 2012 01:48
    vendredi 17 août 2012 01:19

Réponses

  • Bonjour.

    Si le message d'origine est exact, je dirais que le chemin physique de l'appli n'est pas correct (peut-être un caractère interdit bien qu'un espace ne me semble pas particulièrement osé ou alors une longueur excessive ?)

    Eventuellement poster l'URL complète et exacte que vous récupérez pour la page d'admin. Essayez peut-être de voir ce que cela donne si vous mettez votre site web dans un dossier tout simple comme c:\test par exemple...


    Please always mark whatever response solved your issue so that the thread is properly marked as "Answered".

    • Marqué comme réponse Gloops dimanche 26 août 2012 19:59
    vendredi 24 août 2012 21:37
    Modérateur

Toutes les réponses

  • Bonjour,

    Bon, alors j'ai chargé la solution proposée avec l'atelier, et j'ai obtenu le même résultat, ce qui me ramène à la configuration de la machine. Dommage, car elle a été refaite récemment.
    Est-ce que vous avez modifié les fichiers de configuration sur votre machine ?

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte logiciel/Consultant/Formateur Freelance
    Blog : http://gilles.tourreau.fr
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0

    dimanche 19 août 2012 21:35
    Modérateur
  • Est-ce que vous avez modifié les fichiers de configuration sur votre machine ?

    Dans le répertoire .Net ?

    Si c'est le cas ce n'est pas récent et l'interface de gestion de Membership a fonctionné depuis sans souci.

    La réinstallation est basée sur une image de disque d'il y a un an environ. Dans l'intervalle, il y avait dernièrement des soucis avec la gestion de réseau (un peu de mal à parcourir certaines unités parfois), mais l'interface de gestion de la sécurité sur les sites web (basée sur Membership) fonctionnait.

    A présent c'est le contraire semble-t-il, les outils qui accèdent au réseau, comme SuperExec ou autres, fonctionnent mieux, en revanche l'ennui exposé ici est nouveau.

    Je suppose qu'il s'agit de vérifier où est défini le répertoire physique ?

    dimanche 19 août 2012 21:58
  • Pendant qu'on en est à parler des fichiers de configuration ... ça me donne l'occasion de me rendre compte que le répertoire .Net, dans son sous-répertoire v.2.0.50727, contient un sous-répertoire ASP.NETWebAdminFiles.

    La ressemblance avec le chemin de l'interface de configuration est trop marquante pour ne pas me donner envie de fouiner un peu : j'ai donc récupéré une copie dans mon répertoire de projets.

    Eh bien en ouvrant ça, je me retrouve avec une vingtaine de fois l'erreur "espace de noms non reconnu 'asp'", et ça sur les déclarations des contrôles, <asp:content>, <asp:label>, <asp:literal>.

    Il est vrai que la page n'est pas conçue pour être utilisée dans les mêmes conditions, notamment la balise html de la page maîtresse n'a pas d'attribut xmlns, toutefois je me dis que la normalité de la chose mérite confirmation ...


    • Modifié Gloops lundi 20 août 2012 21:14
    lundi 20 août 2012 17:11
  • Bonjour,

    Je pense que vous devriez réinstaller le .NET Framework v2.0, car il me semble que vos fichiers .config se trouvant dans le répertoire d'installation du .NET Framework soient incorrects.

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte logiciel/Consultant/Formateur Freelance
    Blog : http://gilles.tourreau.fr
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0

    lundi 20 août 2012 23:07
    Modérateur
  • Ah, merci pour le tuyau, bien que j'ai cru que j'allais y couper ...

    J'imagine que je ne risque pas grand chose à commencer par essayer en copiant web.config.default sur web.config et pareil pour machine.config ?

    Et pour ce qui est de la copie de asp.NETWebAdminFiles dans le dossiers projets, j'imagine que je n'en tirerai rien ...

    ________

    Bon, en fait non, réinitialiser web.config et machine.config n'a pas suffi. Alors effectivement je ne vais pas y couper. Comme ça doit faire la quatrième ou cinquième fois, maintenant je sais que dans l'ordre ça va être :

    - désinstaller .Net 4

    - désinstaller .Net 3.5

    - désinstaller .Net 2

    - réinstaller .Net 2

    - réinstaller .Net 3.5

    - réinstaller .Net 4

    (et encore peut-être ai-je négligé la 3.0 dans l'énumération ...)

    ça prend une journée.

    Ah au passage j'aurais une autre question, mais peut-être justifiera-t-elle un autre fil : quand je venais d'installer Visual Studio, Document Explorer se chargeait en cinq secondes, environ. Une fois que j'ai réactivé les logiciels de sécurité, le temps de chargement est passé à cinq minutes (et si je l'ai lancé par F1, Visual Studio est bloqué pendant ce temps). Peut-être y a-t-il mieux à faire que répondre oui quand le pare-feu demande si il peut laisser ouvrir ce programme ? J'ai Online Armor, Spyware Terminator, et Avast.

    • Modifié Gloops mardi 21 août 2012 00:08
    lundi 20 août 2012 23:25
  • .Net 2 n'a pas suffi (ça a été plus vite que prévu car il n'y avait pas la version 4).

    J'ai réinstallé Visual Studio 2005 en mode maintenance, deux fois car la première fois j'avais déjà installé .Net 2, et comme Visual Studio essaie de l'installer aussi ... Il me semble qu'il y a un bug dans l'installation de Visual Studio 2005, d'ailleurs : si on se plante tout de suite (à l'installation de .Net 2) on ne devrait pas avoir besoin d'attendre deux heures (l'installation de Document Explorer et Visual Studio) pour le dire.

    Enfin bref, j'ai redésinstallé .Net 2, relancé l'installation en mode maintenance de Visual Studio, il m'a dit qu'il a réussi, et j'ai toujours le même message d'erreur concernant le Physical Directory, à la place de l'interface de saisie des utilisateurs et droits.

    Donc, j'imagine que maintenant, ce qui est au programme, c'est le désinstaller et le réinstaller.

    Rien à vérifier, entre les deux ?

    Est-ce que ça vaut le coup de se donner un temps de réflexion, avant ?


    • Modifié Gloops mardi 21 août 2012 20:58
    mardi 21 août 2012 20:56
  • Je me suis rendu compte que désinstaller .Net 2 ne suffisait pas : ça n'efface pas le répertoire de la version 2 dans windows\Microsoft .Net\Framework, et qu'il faut donc l'effacer manuellement avant de le réinstaller.

    Ensuite j'ai dû réinstaller aussi Visual Studio car il n'y avait plus moyen de se connecter à localhost.

    Mais je n'ai pas effacé le répertoire programme de Visual Studio. Peut-être que j'aurais dû : j'ai toujours la même erreur.

    mercredi 22 août 2012 11:35
  • Alors j'ai désinstallé toutes les versions de .Net sauf la 1, ainsi que Visual Studio, supprimé le répertoire de .Net 2 dans Windows\Microsoft .Net\Framework, et celui de Visual Studio 8 dans Program Files, puis installé Visual Studio 2005 (ce qui inclue automatiquement .Net 2). D'ailleurs, je me serais attendu à ce que l'installation en mode maintenance soit plus rapide qu'après désinstallation, or c'est le contraire.
    Eh bien j'ai toujours le même message à l'ouverture de l'outil de configuration de ASP.Net.

    Je note d'ailleurs qu'après installation de Visual Studio, la première fois que j'ai demandé à ouvrir mon site web écrit en C#, il m'a été répondu que ce n'était pas possible car la bonne version de J# n'était pas installée. Alors j'ai répondu OK et j'ai renouvelé l'ordre, et le site s'est ouvert, je n'ai plus entendu parler de J# ensuite.

    La solution de l'atelier "sécuriser l'application" présente une erreur de compilation au début de la section sitemap du web.config :

    Erreur 1 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.

    J'ai voulu en avoir le coeur net : pendant l'ouverture d'un site web je vois un onglet "serveur IIS local", alors j'ai cliqué là-dessus, et je vois "les services Internet (IIS) ne sont pas installés sur cet ordinateur".

    Nous sommes sous Windows XP familial. Là-dessus, à ma connaissance, IIS est proposé avec Visual Studio 2010, pas avant. Ou je me trompe ?

    Un autre site me dit qu'il ne trouve pas l'assemblage System.Web.Extensions. Euh, ce n'est pas avec Visual Studio, que ça s'installe, ça ? Tout-à-l'heure la boîte de dialogue de fermeture m'a dit que c'était installé avec succès, pourtant.

    J'avoue que j'ai un moment de doute, là ...



    mercredi 22 août 2012 21:18
  •  

    au début de la section sitemap du web.config :

    Erreur 1 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.

    Donc, le contenu de Program Files\Microsoft Visual Studio 8, a été renouvelé, ainsi que celui de .Net 2 dans windows\Microsoft .Net. Si je ne m'abuse la désinstallation par l'outil ad hoc est supposée avoir effacé les clefs de registre, donc les erreurs qui pouvaient s'y trouver.

    Alors qu'est-ce qui reste ? Application Data ? Là-dedans nous avons un fichier security.config. Y aurait-il quelque chose de judicieux à chercher là-dedans ?

    Ah au fait quand on dit Application Data, il s'agit de s'entendre. Le projet a été créé sous un profil limité, puis quand j'ai réalisé que l'accès à la base de données allait poser problème sous ce profil, j'ai appelé le projet après avoir ouvert Visual Studio "en tant que" admin.

    C'est vrai que si c'est vraiment difficile de trouver ça dans la doc ou de trouver quelqu'un qui sait, on a encore une solution qui est de réinstaller Visual Studio après avoir aussi effacé son répertoire dans les Application Data des différents utilisateurs Windows.

    A ce stade, j'ai l'impression que le mieux que j'ai à faire est de ne plus bouger et d'attendre les réactions.

    mercredi 22 août 2012 21:35
  • J'ai lancé Visual Studio en admin après avoir renommé son répertoire dans Application Settings, ça n'a rien résolu.

    D'ailleurs, je vois que les derniers fichiers sélectionnés apparaissent encore sur la page d'accueil. Tiens ... c'est stocké dans le registre, alors ?

    Je suis le premier à avoir cette mésaventure ? Je me demande quelle bêtise j'ai bien pu faire ... Et ce n'est pas de chance, juste la semaine dernière je venais d'avoir l'idée que pour faire valoir ce que j'avais fait sur .Net, rien ne valait une bonne démonstration ...


    • Modifié Gloops jeudi 23 août 2012 10:26
    jeudi 23 août 2012 10:21
  • Nous avons donc là une application appelée par une autre, à savoir que Visual Studio 2005, depuis l'explorateur de solutions, appelle un projet web qui se trouve dans le répertoire .Net 2 sous Windows.

    Il est donc intéressant de savoir si l'appel se fait avec les bons arguments, pour savoir si le problème vient d'un mauvais argument passé à la bonne routine, ou d'un bon argument mal interprété à l'arrivée, et ensuite pour quelle raison.

    J'ai donc copié l'URL de la page asp.netwebadminfiles, avant que le renvoi à la page de traitement d'erreur n'ait lieu.

    J'ai copié ça dans le bloc notes, d'où j'ai récupéré l'argument applicationPhysicalPath, pour le recopier dans un deuxième bloc notes, afin de remplacer %20 par un espace, et j'ai copié le résultat dans la barre d'adresse de l'explorateur Windows. Je suis bien arrivé dans le répertoire où se trouve le code du site web, celui qui a été ouvert par Visual Studio.

    Le deuxième argument est applicationUrl=/AffairesSansRisque, et j'ai aussi essayé avec applicationUrl=/

    Voilà qui semblerait laisser entendre que l'appel a été bien fait, mais que .Net ne réussit pas à exploiter cette URL ? Ce n'est pas le code dans le répertoire C:\Windows\Microsoft .Net\Framework\v.2.0.50727 qui est en cause ou alors on n'est pas sortis de l'auberge, puisqu'il a été régénéré depuis le disque d'installation de Visual Studio (après effacement explicite depuis l'explorateur).

    Bon, donc, l'interprétation dépendrait d'un paramètre qui se situe quelque part ailleurs que dans le répertoire .Net cité à l'instant ou le répertoire de Visual Studio 8 dans Program Files.

    Bon, d'accord, mais où ?

    Peut-être bien que le fait que je réussisse à créer un utilisateur avec le contrôle ad hoc est utile à savoir aussi.

    Si quelqu'un avec un peu de recul arrive à voir clair là-dedans ça m'aiderait bien, parce que là avec le nez dans le guidon j'avoue que je sèche, et ... j'aurais bien besoin que ça tourne.

    Un indice, quelqu'un ?

    Sur les forums anglophones je suis mal barré, j'ai eu le malheur de dire que le code-behind était en C#, et j'ai négligé de dire que le problème se pose aussi avec le projet modèle de Microsoft, donc on m'a dit c'est un problème C#, s'adresser au forum C#, et hop, viré dans le forum hors sujet. Il y a peut-être un lien pour contacter l'administrateur intéressé, mais j'ai du mal à le trouver.

    On va voir si j'aurai plus de chance du côté de asp.net, mais ce n'est pas tout-à-fait immédiat.



    • Modifié Gloops vendredi 24 août 2012 14:23
    vendredi 24 août 2012 14:15
  • Ah mais au fait je n'ai pas mis les infos à jour, ici : j'ai mentionné, après réinstallation de Visual Studio, deux projets en erreur de compilation au niveau de web.config. Je ne sais plus exactement lesquels c'était, toujours est-il qu'à présent mon projet compile bien, la page d'accueil s'affiche, sans problème.

    C'est juste la page de configuration asp, qui donne toujours le message signalé en tête de ce fil (paramètre PhysicalDirectory invalide).

    (Oui je sais ça aurait été mieux que je le dise en même temps que mon message de tout-à-l'heure ... désolé)


    • Modifié Gloops vendredi 24 août 2012 15:00
    vendredi 24 août 2012 14:59
  • Bonjour.

    Si le message d'origine est exact, je dirais que le chemin physique de l'appli n'est pas correct (peut-être un caractère interdit bien qu'un espace ne me semble pas particulièrement osé ou alors une longueur excessive ?)

    Eventuellement poster l'URL complète et exacte que vous récupérez pour la page d'admin. Essayez peut-être de voir ce que cela donne si vous mettez votre site web dans un dossier tout simple comme c:\test par exemple...


    Please always mark whatever response solved your issue so that the thread is properly marked as "Answered".

    • Marqué comme réponse Gloops dimanche 26 août 2012 19:59
    vendredi 24 août 2012 21:37
    Modérateur
  • Bonjour,

    Je viendrai vous dire ça après avoir restauré la machine. En effet, à force de me bagarrer avec la configuration, à coups de désinstallations plus ou moins poussées et de réinstallations ou tentatives, j'ai fini par me retrouver avec des messages du style "le statut d'installation du composant est inconnu". En bref, Visual Studio 2005 ne peut ni être retiré de "Ajout/Suppression de programmes", ni être installé proprement, et n'a pas de répertoire de programme. Donc, pas vraiment en progrès par rapport au début ...

    Décidément, ce n'était pas inutile de graver un DVD de démarrage en rentrant du magasin, surtout pour une machine fournie sans support de restauration (malgré les arguments de vente au demeurant).

    N.B. Si j'en crois Notepad2, le chemin d'accès au répertoire physique a une longueur de 103 caractères

    • Modifié Gloops dimanche 26 août 2012 16:59
    dimanche 26 août 2012 16:41
  • Bonjour.

    Si le message d'origine est exact, je dirais que le chemin physique de l'appli n'est pas correct (peut-être un caractère interdit bien qu'un espace ne me semble pas particulièrement osé ou alors une longueur excessive ?)

    Voilà qui semble bien être la bonne réponse.

    Dans le répertoire de mes sites, j'avais un WebDataTest, où l'outil de configuration ASP renvoie la même erreur. Je l'ai recopié sous la racine, et là ça marche. Comme Membership n'y est pas défini l'onglet Sécurité me renvoie une erreur, mais ça c'est normal.

    Je me suis trompé d'image de disque, il faut que je restaure celle d'avant pour des raisons complètement différentes, donc je serai en mesure de reprendre le cours de l'atelier dans quelques heures.

    Eh bien j'ai bien fait de réviser, on dirait. Je ne me représentais pas qu'un point aussi important ait pu m'échapper de la mémoire depuis l'année dernière, même si je me doutais bien que certaines choses n'allaient pas être "fluent". Me voilà donc pris en flagrant délit d'avoir lu les instructions du coach un peu vite, car j'imagine que ce point doit bien y être évoqué quelque part, sinon il n'y a guère de raison que l'année dernière je m'en sois sorti de façon nasodigitale. L'année dernière, j'avais une entrée du menu contextuel de l'explorateur qui définissait le répertoire courant comme unité I:, si il y a une longueur maximale et que je l'ai oubliée, j'imagine que j'ai dû utiliser ça.

    Merci de m'avoir remis le bagage du bon côté, ça commençait à pas mal coincer.


    • Modifié Gloops dimanche 26 août 2012 19:58
    dimanche 26 août 2012 19:57