2010-10-18 38 views
1

Je veux gérer deux fichiers web.config dans une application pour l'utilisateur frontal et une seconde pour le serveur principal (admin) user.for section admin j'ai créé un dossier avec le nom admin dans les mêmes settiongs de website.following sont dans le admin/web.configC'est une erreur d'utiliser une section enregistrée comme allowDefinition = 'MachineToApplication' au-delà du niveau de l'application

lorsque j'essaie d'exécuter l'application, j'obtiens le message d'erreur suivant:

Il est erroné 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 configuré comme pas une application dans IIS

Même problème ont discuté sur ci-dessous ASP.NET What causes: It is an error to use a section registered as allowDefinition='MachineToApplication' beyond application...?

It is an error to use a section registered as allowDefinition='MachineToApplication' beyond application level

S'il vous plaît me donner quelques suggestions pour résoudre ce problème. Merci d'avance

Répondre

3

Vous devez le définir en tant qu'application dans IIS.

+0

J'utilise IIS 6, comment je vais faire, pouvez-vous me dire les étapes – Adam

+0

du haut de ma tête: faites un clic droit sur le dossier, ouvrez les propriétés et recherchez une option qui dit faire application ou quelque chose comme ça . – eglasius

+0

http://www.affiliatewiz.com/support/appstartpoint.asp (juste cherché: iis créer une application) – eglasius

5

J'ai rencontré le même problème lorsque j'avais une application Web dans une autre application Web résultant en deux fichiers Web.config. J'ai supprimé un et le problème a été résolu. Étant donné que les paramètres de configuration au niveau enfant peuvent remplacer ceux du niveau parent, cette erreur peut se produire lorsque vous avez 2 fichiers web.config redéfinissant les paramètres de configuration que vous ne pouvez pas remplacer, tels que l'authentification ou l'état de session. Un problème se produit lorsque vous avez configuré l'authentification/l'état de la session sur le web.config de niveau inférieur et également sur le Web de niveau supérieur.config

+1

Cela a fait l'affaire pour moi. J'ai supprimé le noeud "authentication" sur le web.config imbriqué et cela a fonctionné immédiatement. Merci! –

+0

J'ai eu quelques sous-dossiers de sauvegarde pour garder quelques fichiers sans modifications. Il semble qu'ils créaient un conflit avec le fichier web.config principal. – Rolo

3
  • Il y a une énorme quantité de informations sur l'obtention de cette erreur dans IIS. J'ai passé des heures sur les questions comme ça, parce que, il n'y a jamais eu de réponse claire.

    Vous entendrez des choses comme

    Cela signifie que si vous avez une application, vous ne devez pas configurer les paramètres de MachineToApplication dans web.config est dans le sous-répertoires.

    Tout ce que vous devez faire est de définir les paramètres de MachineToApplication dans votre racine de l'application, et ils seront hérités dans les sous-répertoires.

    Solution:

    configurer tous les paramètres MachineToApplication dans la racine de votre application, et supprimer tous les paramètres de MachineToApplication de votre application sous-répertoires.

    Ce que toutes les réponses ne parvenez pas à MENTION est qu'il ya une myriade de autorisations de fichiers, sécurité, etc .. passe avec un fichier dans IIS.

    Cela était plus facile, mais avec l'augmentation de la prolifération , il est beaucoup, beaucoup plus compliqué.

    J'ai une solution que je l'ai utilisé qui a obtenu mon IIS à TRAVAiL

    1er. Testez une page HTML simple dans une nouvelle application Web . Si vous pouvez obtenir que cela fonctionne, alors vous devriez être bon pour les prochaines étapes .

    2ème. Lorsque vous envisagez le problème qui a démarré cela, vous avez un fichier Machine.config dans le répertoire E: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ CONFIG de votre Framework pour .

    Ceci est le fichier qui définit le type de AllowedDefinitions. (Chercher que dans le fichier de configuration) soit allowDefinition = « MachineToApplication » ou allowDefinition = « Machine »

    Quand quelqu'un dit que vous devez mettre votre web.config dans vos applications dossier « Root », selon sur la façon dont votre application est configuré, dictera où mettre votre web.config.

    Pour que le mien fonctionne, je le mets dans le dossier E: \ Inetpub \ wwwroot .

    3e.Vous devrez tester quelles sections à inclure dans le dossier racine config , et celles que vous pouvez mettre dans vos différents dossiers Web "Application" .

    4ème. Ce travail est en cours, mais je voulais obtenir ce là tout je travaillais dessus et il était frais dans mon esprit ...

    Je posterai plus tard quand j'Aérez plus des problèmes.

    je prévois de publier une explication extrêmement détaillée plus tard quand je déchiffre tous les cryptique, volontairement sans papier, parfois trompeuses, informations sur la question de configs, etc. pour obtenir IIS fonctionne correctement.

    ie. Je suis fatigué de piratage autour essayant de se comporter correctement, mais je veux bien tester le système et à documenter, EXACTEMENT ce que doit être fait, et pourquoi, pour obtenir la disponibilité des applications rapidement ...

    Merci d'avoir lu ceci.

0

J'ai eu le même problème lors de l'utilisation d'une installation Kentico. Certes ce n'est pas une balle d'argent, mais dans ce cas, c'était parce que l'un des modèles de base CorporateSiteAspx avait son propre fichier webconfig contenant les paramètres de configuration utilisés requirePermission="false" allowDefinition="MachineToApplication"

Sur l'exclusion de ce fichier (qui n'a pas été utilisé de toute façon) l'application construite avec succès.