C'est une erreur d'utiliser une section enregistrée comme allowDefinition = 'MachineToApplication' au-delà du niveau de l'application.
La ligne supérieure de toutes mes pages aspx dans mon répertoire / portal / a ce message d'erreur, et je sais que c'est un message courant. 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 imbriqué web.configs (mais aucune des publications n'offre de conseils pour trouver une solution).
Ma configuration est que j'ai un web.config dans mon répertoire racine, puis j'essaye de créer un portail d'entreprise, dans le répertoire / portal /. Le répertoire / portal / a son propre fichier web.config (nécessaire).
Ma ligne 50 web.config est comme ceci:
<customErrors mode="Off" defaultRedirect="customerrorpage.aspx"/>
<anonymousIdentification enabled="true"/>
<authentication mode="Forms"/>
<membership defaultProvider="MyProvider">
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 un moyen de fusionner mon web.config racine avec mon répertoire / portal / web.config, ou suis-je loin de la base ici?
Toute orientation serait grandement appréciée!
la source
Réponses:
Juste pour des informations générales; Les informations de configuration d'un site Web ASP.NET sont définies dans un ou plusieurs fichiers Web.config. Les paramètres de configuration sont appliqués de manière hiérarchique. Il existe un fichier Web.config «global» qui énonce les informations de configuration de base pour tous les sites Web sur le serveur Web; ce fichier vit dans le
%WINDIR%\Microsoft.Net\Framework\version\CONFIG
dossier. Vous pouvez également avoir un fichier Web.config dans le dossier racine de votre site Web. Ce fichier Web.config peut remplacer les paramètres définis dans le fichier Web.config «global» ou en ajouter de nouveaux. En outre, vous pouvez avoir des fichiers Web.config dans les sous-dossiers de votre site Web, qui définissent de nouveaux paramètres de configuration ou remplacent les paramètres 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'
<authentication>
élément en 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 peut pas être défini 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 - En fonction du contenu de votre deuxième web.config et si votre configuration le permet (c'est-à-dire la même méthode d'authentification) - ajoutez les
<authentication>
paramètres et tous les autres éléments qui devraient être définis globalement dans le haut web.config2 - 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 contenues dans ce lien lien archivé ci-dessous. Le lien d'origine ne fonctionne plus. (voir archivé ) J'espère que cela aide.
la source
Pour ce que ça vaut, j'avais 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 a fini par le résoudre en effaçant les répertoires \ myWebApp \ obj \ Debug et \ myWebApp \ obj \ Release. J'avais également besoin de définir une page de démarrage par défaut. Mais, ensuite, l'application a bien démarré. HTH.
la source
Comme le dit RY4N ci-dessus, ce n'est pas nécessairement le web.config dans votre dossier Projet qui cause le problème. Dans certains cas, j'ai constaté que l'exécution d'une construction sous le profil de débogage laissera des détritus dans le dossier Debug sous le projet en question. Il y a souvent un fichier web.config ici qui conduit à l'erreur ci-dessus lorsque vous exécutez ensuite une compilation sous le profil Release.
La solution qui fonctionne pour moi ici est de supprimer tout le dossier de débogage que la ou les versions précédentes ont créé sous le répertoire du projet.
la source
Cela se produisait également sur mon ordinateur personnel, mais UNIQUEMENT lorsque j'ai activé Build Views sur la configuration de la version ET créé une configuration de version. 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" apparaîtrait toujours et me laissait incapable d'exécuter l'application.
la source
Juste pour dire
Si vous mettez à niveau (par exemple 2008 -> 2010) Un projet Visual Studio créera une sauvegarde (si vous l'autorisez) dans la solution de projet qui est ajoutée à la nouvelle solution, L'ancienne Webconfig est l'endroit où l'erreur indiquée ci-dessus peut alors émaner .
" Fichier Web.config dans l'un des sous-dossiers du site Web contenant l'un de ces éléments de configuration qui ne peuvent pas être définis au-delà du niveau de l'application. " @Benni_mac_b
Pour y remédier: supprimez simplement le dossier de sauvegarde du projet et de la solution, dans ce scénario.
la source
J'ai trouvé une autre raison possible pour que cela se produise.
J'avais une ancienne application Web intégrée à 2.0. Je l'ai migré vers une solution 4.5.
L'application a été créée et déboguée très bien à l'intérieur de Visual Studio, mais lorsque j'ai tenté de publier l'application Web, cette erreur s'est produite à plusieurs reprises.
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 dans le répertoire de sortie a été défini sur «Toujours copier» plutôt que sur «Ne pas copier». Je ne sais pas quand ces réglages ont été effectués, mais je crois que c'était de retour dans la version 2.0 de l'application.
La modification des paramètres du fichier web.config permettait à l'action Publier dans la publication Visual Studio 2012 de fonctionner parfaitement.
la source
J'ai eu le même problème dans un projet MVC. L'erreur s'est produite lorsque j'ai essayé de publier. Il s'est avéré que le dossier obj devrait être vide (ou du moins ne pas en contenir
web.config
).Courir
Clean
n'a pas fait l'affaire pour moi.J'ai résolu le problème en nettoyant le
obj
dossier avant toute construction (la construction du projet ne prendra pas si longtemps 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
la source
"C'est une erreur d'utiliser une section enregistrée comme allowDefinition = 'MachineToApplication' au-delà du niveau de l'application. Cette erreur peut être causée par un répertoire virtuel qui 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 certaines transformations de configuration, j'avais défini par erreur la propriété du fichier Web.config "Copier toujours". Je règle généralement mes fichiers de transformation sur "Copier toujours" mais laisse le fichier racine web.config sur "Ne pas copier".
Attention, la modification des propriétés de web.config modifie également toutes les transformations imbriquées.
Donc, pour réparer:
1) Changez web.config en "Ne pas copier"
2) Facultativement, si vous utilisez des transformations de configuration, définissez-les sur "Copier toujours"
3) Supprimez les dossiers obj et bin de la solution (ceux-ci peuvent ne pas être visibles, alors sélectionnez le nœud du projet dans l'Explorateur de solutions et cliquez sur le bouton de la barre d'outils "Afficher tous les fichiers".
4) Publier
A travaillé pour moi.
la source
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 était de modifier les paramètres pour:
Build Action - Content
Copy to Output - Do not Copy
la source
J'ai également eu ce problème et il est survenu après avoir utilisé l'assistant de publication pour publier mon site sur le Web.
Après de longues recherches, je suis tombé sur ce rapport de bogue sur le site Web de Connect, https://connect.microsoft.com/VisualStudio/feedback/details/779737/error-allowdefinition-machinetoapplication-beyond-application-level
Un représentant MS a répondu et en plus d'expliquer pourquoi c'était un problème survenu lors de la publication, il a également inclus une solution de contournement temporaire qui a résolu le problème pour moi.
la source
Supprimez et créez à nouveau le répertoire virtuel. Faites un clic droit et convertissez le répertoire virtuel en " Application "
la source
Cliquez sur le
Web.config
fichier de l'explorateur de solutions et faites un clic droit sur "Propriétés" et passez à "Copier dans le répertoire de sortie: ne pas copier".la source
Pour moi, la raison était que le dossier obj était sous le dossier du site Web et plusieurs web.config sont apparus après la construction de différentes configurations. J'ai résolu le problème sous vs2012 en déplaçant le dossier obj hors du site Web. Pour ce faire, j'ai ajouté manuellement (dans le bloc-notes) $ (SolutionDir) \ Obj \ $ (Configuration) à chaque configuration dans le fichier de projet du site Web.
la source
J'avais le même problème lorsque je publierais le site, si je construis le site, je n'obtiens aucun problème, mais lors de la publication, j'obtiendrais cette terrible erreur:
J'ai essayé tout ce qui a été dit ici dans cet article sans recours, ce qui a fonctionné pour moi était simplement de créer un nouveau profil de publication avec exactement le même que celui que j'utilisais et qui fonctionne bien, n'obtenez pas l'erreur avec le nouveau profil mais 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 !!
la source
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 à faire cela sur un ancien site lors de la copie d'une machine à une autre - on m'a juste demandé de regarder le site après un intervalle d'environ 2 ans et l'erreur s'est produite. J'ai pris un peu de temps pour comprendre - car je n'avais pas plusieurs fichiers de configuration.
la source
J'ai eu ce problème et je l'ai résolu en nettoyant ma solution d'anciens assemblages, etc.
à partir de vs: Build> Clean Solution
puis Rebuild.
la source
Démarrer Windows -> ouvrir Sites -> IIS -> cliquer avec le bouton droit sur votre site -> Gérer le site Web -> Paramètres avancés -> parcourir le chemin physique -> essayer de sélectionner le sous-dossier de la fois que vous êtes actuellement sélectionné.
la logique est que le fichier de configuration Web à l'intérieur du sous-dossier essaie d'apporter des modifications et cela n'est pas autorisé, doit être le dossier sélectionné: http://scottonwriting.net/sowblog/archive/2010/02/17/163375.aspx
la source
J'obtiens également cette erreur lorsque j'essaie de déployer un sous-site Web dans un site Web.
La solution est:
<authentication mode="None" />
Si vous rencontrez un autre problème, n'hésitez pas à me contacter, peut-être que je trouverai de l'aide.
la source
J'ai reçu cette erreur sur localhost dans Visual Studio 2017 et un simple redémarrage de Visual Studio a résolu le problème.
Je me rends compte que ce problème peut également être causé par le fait d'avoir plusieurs web.config; un dans un sous-dossier par exemple. si vous avez plusieurs fichiers web.config à dessein pour une autre application: assurez-vous que le répertoire n'est pas vu comme un répertoire virtuel.
la source
Assurez-vous de ne pas tomber dans le piège d'avoir mal accédé à votre site local via localchost / mysite.test qui devrait être mysite.test qui vous donnera cette erreur.
Lorsque vous accédez à votre site comme localhost / dir_name, dans ce cas, votre web.conf tombe en dessous du niveau racine et donc cette erreur.
la source
J'étais en train de migrer des applications et l'application contenait plusieurs applications (plusieurs web.configs). Ce que j'ai fait était d'aller dans IIS puis de cliquer avec le bouton droit sur les sous-dossiers, puis "Convertir en application" et cela a fonctionné.
la source
J'ai eu cette erreur différemment de tout le monde:
J'étais en train de migrer 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 publier dans le système de fichiers (nous avons un constructeur d'installation distinct, il s'agit d'une application commerciale) et je publiais dans un dossier qui se trouvait à l'intérieur du projet Web existant lié à IIS.
Cela a provoqué une erreur lors de la publication qui m'a déconcerté au début parce que je publiais sur le système de fichiers, pas sur IIS (je pensais).
La solution consistait à modifier la publication dans le dossier en dehors du projet Web.
la source
Tout allait bien
localhost
mais lorsque j'ai publié une version sur le serveur, j'ai commencé la même erreur pour quelques pages. Ensuite, j'ai nettoyé la solution et reconstruit et publié, les choses ont été corrigées.la source
Parfois, la réponse simple est la meilleure. J'avais deux fichiers web.config dans mon projet. Celui au niveau principal est celui où je devais effectuer le changement pour gérer le délai d'expiration de ma session (ce qui a déclenché ce problème). J'avais un fichier de configuration séparé dans mon répertoire Razor Views, qui avait des paramètres 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 séparés, j'ai tout essayé sauf à la recherche de l'évidence.
la source
mon erreur était de copier accidentellement un web.config dans un autre dossier sur le serveur Web
la source
J'ai eu cette erreur lorsque j'ai oublié de convertir le projet publié en une application dans IIS.
la source