C’est une erreur d’utiliser une section enregistrée comme allowDefinition = ‘MachineToApplication’ au-delà du niveau de l’application.
La première ligne de toutes mes pages aspx dans mon répertoire / portal / a ce message d’erreur, et je sais que c’est un message commun. J’ai googlé ce message d’erreur sans fin, et je vois beaucoup de messages me disant de configurer le dossier / portal / en tant qu’application dans IIS (que j’ai), et plus de messages me disant que j’ai nested web.configs (mais aucune des publications ne propose des solutions vers une solution).
Ma configuration est que j’ai un fichier web.config dans mon répertoire racine, puis j’essaie de créer un portail d’entreprise, dans le répertoire / portal /. Le répertoire / portal / a son propre web.config (nécessaire).
Ma ligne web.config 50 est comme ceci:
J’ai donc domain.com/web.config ET domain.com/portal/web.config … donc ma page domain.com/portal/default.aspx ne se chargera pas.
Quelle est la vraie solution à cela? Est-ce que je trouve en quelque sorte un moyen de fusionner ma racine web.config avec mon / portal / répertoire web.config, ou suis-je loin de la base ici?
Toute orientation serait grandement appréciée!
Juste pour l’information de fond Les informations de configuration pour un site Web ASP.NET sont définies dans un ou plusieurs fichiers Web.config. Les parameters de configuration sont appliqués de manière hiérarchique. Il existe un fichier Web.config «global» qui définit les informations de configuration de base pour tous les sites Web du serveur Web. ce fichier réside dans le dossier %WINDIR%\Microsoft.Net\Framework\version\CONFIG
. Vous pouvez également avoir un fichier Web.config dans le dossier racine de votre site Web. Ce fichier Web.config peut remplacer les parameters définis dans le fichier Web.config «global» ou en append de nouveaux. De plus, vous pouvez avoir des fichiers Web.config dans les sous-dossiers de votre site Web, qui définissent de nouveaux parameters de configuration ou remplacent les parameters de configuration définis dans les fichiers Web.config situés plus haut dans la hiérarchie.
Certains éléments de configuration dans Web.config ne peuvent pas être définis au-delà du niveau de l’application, ce qui signifie qu’ils doivent être définis dans le fichier Web.config «global» ou dans le fichier Web.config du dossier racine du site Web. L’élément
est un exemple. Le message d’erreur ci-dessus indique qu’il existe un fichier Web.config dans l’un des sous-dossiers du site Web qui contient l’un de ces éléments de configuration qui ne peuvent pas être définis au-delà du niveau de l’application.
Source: http://scottonwriting.net/sowblog/archive/2010/02/17/163375.aspx
Vous avez correctement identifié les 2 approches possibles.
1 – Selon le contenu de votre deuxième fichier web.config et si votre installation le permet (par exemple, même méthode d’authentification) – ajoutez les parameters
et tout autre élément devant être défini globalement dans le fichier web.config supérieur.
2 – Si vous ne pouvez pas fusionner le contenu de web.config, vous devriez pouvoir transformer le sous-dossier en une application Web dans IIS en suivant les étapes décrites dans le lien ci-dessous. Le lien d’origine ne fonctionne plus. (voir archivé ) J’espère que ça aide.
Comme le dit RY4N ci-dessus, le problème n’est pas nécessairement lié à web.config dans votre dossier Project. Dans certains cas, j’ai constaté que l’exécution d’une génération sous le profil Debug laissera des désortingtus dans le dossier Debug sous le projet en question. Il y a souvent un fichier web.config ici qui mène à l’erreur ci-dessus lorsque vous exécutez ensuite une génération sous le profil Release.
La solution qui fonctionne pour moi ici est de supprimer le dossier Debug complet que la ou les versions précédentes ont créé dans le répertoire du projet.
Pour ce que cela vaut, j’ai reçu l’erreur “C’est une erreur d’utiliser une section enregistrée comme allowDefinition = ‘MachineToApplication’ au-delà du niveau de l’application.” et fini par le résoudre en effaçant les répertoires \ myWebApp \ obj \ Debug et \ myWebApp \ obj \ Release. Je devais également définir une page de démarrage par défaut. Mais, alors l’application a bien démarré. HTH.
Cela se produisait également sur mon ordinateur personnel, mais UNIQUEMENT lorsque j’ai activé Build Views dans la configuration de la version et créé une configuration Release. Sinon, cela ne s’est pas produit.
Bien que l’option Build Views soit très agréable, j’ai fini par la désactiver car cette “erreur” apparaissait toujours et me permettait de ne pas exécuter l’application.
Juste pour dire
Si vous effectuez une mise à niveau (par exemple 2008 -> 2010) Un projet Visual Studio créera une sauvegarde (si vous l’autorisez) dans la solution de projet ajoutée à la nouvelle solution. L’ancienne Webconfig est l’endroit où l’erreur signalée ci-dessus peut provenir de .
“Un fichier Web.config dans l’un des sous-dossiers du site Web possède l’un de ces éléments de configuration qui ne peut pas être défini au-delà du niveau de l’application. ” @Benni_mac_b
Pour résoudre ce problème : Supprimez simplement le dossier de sauvegarde du projet et de la solution dans ce scénario.
Je suis venu avec une autre raison possible que cela se produit.
J’avais une ancienne application Web intégrée à la version 2.0. Je l’ai migré vers une solution 4.5.
L’application créée et déboguée est parfaitement adaptée à l’intérieur de Visual Studio, mais lorsque j’ai tenté de publier l’application Web, cette erreur s’est produite à plusieurs resockets.
J’ai finalement découvert que le problème était que Build Action pour le fichier web.config était “Embedded Resource” plutôt que “Content”. En outre, le répertoire de copie vers la sortie a été défini sur “Toujours copier” plutôt que sur “Ne pas copier”. Je ne sais pas quand ces parameters ont été définis, mais je crois que c’était dans la version 2.0 de l’application.
La modification des parameters du fichier web.config a permis à l’action Publish dans la publication Visual Studio 2012 de fonctionner sans problème.
J’ai eu le même problème dans un projet MVC. L’erreur s’est produite lorsque j’ai essayé de publier. Le dossier obj devrait être vide (ou du moins ne pas contenir de web.config
).
Running Clean
n’a pas fait l’affaire pour moi.
J’ai résolu le problème en nettoyant le dossier obj
avant toute construction (la construction du projet ne prendra pas beaucoup de temps de toute façon dans mon cas).
J’ai déchargé le projet et ajouté ce qui suit à la cible BeforeBuild
J’espère que cela t’aides
J’ai rencontré cette erreur uniquement lors de la publication de l’application.
Les propriétés des fichiers web.config (et transformations) ont été définies comme suit:
Build Action - None
Copy to Output - Always
. La solution consistait à modifier les parameters pour:
Build Action - Content
Copy to Output - Do not Copy
J’ai également eu ce problème et il est né après que j’ai utilisé l’Assistant de publication pour publier mon site sur le Web.
Après de nombreuses recherches, je suis tombé sur ce rapport de bogue sur le site Web Connect, https://connect.microsoft.com/VisualStudio/feedback/details/779737/error-allowdefinition-machinetoapplication-beyond-application-level
Un représentant de MS a répondu et a expliqué pourquoi il s’agissait d’un problème survenu lors de la publication. Il a également inclus une solution temporaire qui a résolu le problème pour moi.
Supprimez et créez le répertoire virtuel à nouveau. Clic droit et convertir le répertoire virtuel en ” Application ”
“Il est erroné d’utiliser une section enregistrée en tant que allowDefinition = ‘MachineToApplication’ au-delà du niveau de l’application. Cette erreur peut être provoquée par le fait qu’un répertoire virtuel n’est pas configuré en tant qu’application dans IIS.”
J’ai eu ce problème dans VS.NET. Il s’est avéré que lorsque je configurais des transformations de configuration, j’avais défini par erreur la propriété “Copier toujours” du fichier Web.config. Je règle généralement mes fichiers de transformation sur “Copier toujours” mais laisse le fichier racine web.config comme “Ne pas copier”.
Attention, car la modification des propriétés de web.config modifie également toutes les transformations nestedes.
Donc, pour réparer:
1) Remplacez web.config par “Ne pas copier”
2) Facultativement, si vous utilisez des transformations de configuration, définissez-les sur “Toujours copier”
3) Supprimez les dossiers obj et bin de la solution (ceux-ci peuvent ne pas être visibles, sélectionnez le nœud du projet dans l’Explorateur de solutions et cliquez sur le bouton “Afficher tous les fichiers” de la barre d’outils).
4) Publier
Travaillé pour moi
Pour moi, la raison était que le dossier obj se trouvait sous le dossier du site Web et que plusieurs fichiers web.config apparaissaient après la création de différentes configurations. J’ai résolu le problème sous vs2012 en déplaçant le dossier obj sur le site Web. Pour ce faire, j’ai ajouté manuellement (dans le bloc-notes) $ (SolutionDir) \ Obj \ $ (Configuration) à chaque configuration du fichier de projet du site Web.
J’avais le même problème lorsque je publiais le site, si je construis le site, je ne reçois aucun problème, mais en publiant cette erreur, j’aurais cette terrible erreur:
“C’est une erreur d’utiliser une section enregistrée comme allowDefinition = ‘MachineToApplication’ au-delà du niveau de l’application. Cette erreur peut être provoquée par le fait qu’un répertoire virtuel n’est pas configuré en tant qu’application dans IIS”
J’ai essayé tout ce qui a été dit ici dans ce post à aucun recours, ce qui a fonctionné pour moi était de créer un nouveau profil de publication avec exactement le même que celui que j’ai utilisé et qui fonctionne bien, ne pas obtenir l’erreur avec le nouveau profil mais faites avec l’ancien. Je ne sais pas quelle est la différence, mais au moins je peux publier mon projet MVC.
J’espère que cela aide quelqu’un !!
Voici une autre raison – Si vous copiez l’intégralité de votre application Web dans l’un de ses propres sous-dossiers, vous obtiendrez cette erreur. J’ai réussi à le faire sur un ancien site lors de la copie d’une machine à une autre – on m’a simplement demandé de regarder le site après environ deux ans et l’erreur s’est produite. J’ai pris beaucoup de temps pour comprendre – car je n’avais pas de fichiers de configuration multiples.
J’ai eu ce problème et résolu en nettoyant ma solution d’anciens assemblages, etc.
de vs: Build> Clean Solution
puis reconstruire.
Windows Démarrer -> ouvrir les sites -> IIS -> cliquez avec le bouton droit sur votre site -> Gérer le site Web -> Paramètres avancés -> parcourir le chemin physique -> essayez de sélectionner le sous-dossier de votre sélection actuelle.
la logique est que le fichier de configuration Web à l’intérieur du sous-dossier tente d’apporter des modifications, ce qui n’est pas autorisé, doit être le dossier sélectionné: http://scottonwriting.net/sowblog/archive/2010/02/17/163375.aspx
Assurez-vous de ne pas tomber dans le piège de l’access à votre site local via localchost / mysite.test qui devrait être mysite.test et qui vous donnera cette erreur.
Lorsque vous accédez à votre site comme localhost / dir_name, dans ce cas, votre fichier web.conf tombe sous le niveau racine et donc cette erreur.
J’étais en train de migrer des applications et l’application comportait plusieurs applications (plusieurs web.configs). Ce que j’ai fait était d’aller dans IIS, puis cliquez avec le bouton droit sur les sous-dossiers, puis “Convertir en application”.
J’ai eu cette erreur différemment que tout le monde:
Je migrais de vs2010 avec un projet de déploiement Web vers vs2012 et un nouveau profil de publication Web.
J’ai créé un nouveau projet de publication Web dans vs2012 pour le publier dans un système de fichiers (nous avons un programme d’installation distinct, il s’agit d’une application commerciale) et je publiais dans un dossier intégré au projet Web existant lié à IIS.
Cela a causé l’erreur lors de la publication qui m’a mystifié au début parce que je publiais sur le système de fichiers, pas IIS (je pensais).
La solution consistait à changer le dossier de publication en externe au projet Web.
J’obtiens également cette erreur lorsque j’essaie de déployer un sous-site Web sur le site Web.
La solution est la suivante:
Si vous avez d’autres problèmes, n’hésitez pas à me contacter, peut-être que je trouverai de l’aide.
Cliquez sur le fichier Web.config
de l’explorateur de solutions et modifiez
Copier dans le répertoire de sortie = Ne pas copier
C’était bien sur localhost
mais quand j’ai publié une version sur le serveur, j’ai commencé la même erreur pour quelques pages. Puis j’ai nettoyé la solution et reconstruit et publié, les choses ont été corrigées.
Parfois, la réponse simple est la meilleure. J’ai eu deux fichiers web.config dans mon projet. Celui au niveau principal est celui où je devais apporter les modifications nécessaires pour gérer le délai d’expiration de la session (ce qui a déclenché ce problème). J’avais un fichier de configuration séparé dans mon répertoire Razor Views, qui contenait des parameters pour Razor et ses vues. J’y ajoutais une section (pas au niveau de l’application!). Sans me rendre compte que j’avais deux fichiers web.config distincts, j’ai tout essayé, sauf la recherche de l’évidence.