web.config allowDefinition=MachineToApplication erreur
Sous le répertoire racine je avoir la structure suivante
..
..
..
web.config
Report Folder
- Login.aspx
- Web.config
|
|-> ViewReport
|
|-> Report.aspx
Dans mon web.fichier de config dans le dossier de Rapport j'ai le texte suivant:
<?xml version="1.0"?>
<configuration>
<system.web>
<authentication mode="Forms">
<forms loginUrl="Login.aspx" defaultUrl="ViewReport/Report.aspx">
<credentials passwordFormat="Clear">
<user name="Johl" password="pass888"/>
</credentials>
</forms>
</authentication>
</system.web>
<location path="ViewReport/Report.aspx">
<system.web>
<authorization>
<allow users="Johl"/>
<deny users="*"/>
</authorization>
</system.web>
</location>
</configuration>
Quand j'ai démarrer le débogage je reçois le message suivant:
C'est une erreur d'utiliser une section enregistré comme allowDefinition='MachineToApplication" au-delà du niveau de l'application. Cette erreur peut être causée par un répertoire virtuel de ne pas être configuré comme une application dans IIS.
NOTEZ que dans mon site web racine.config j'ai quelque chose comme ce qui suit:
Dans mes racines, j'ai déjà la suivante:
<system.web>
<authentication mode="Forms">
<forms loginUrl="Str/StrUserLogin.aspx" timeout="2880" slidingExpiration="true" />
</authentication>
<authorization>
<allow users="*" />
</authorization>
</system.web>
- Avez-vous de la création d'un répertoire virtuel à la racine du site?
- Dois-je le faire même si je suis en train de travailler sur localhost?
- Oui, c'est probablement la cause de cette erreur.
Vous devez vous connecter pour publier un commentaire.
Créer un répertoire virtuel à la racine du site. Ceci peut être fait via les propriétés du projet dans VS sous l'onglet Web.
Il est également possible que vous avez des choses définies dans le sous-répertoire qui doit être à la racine du fichier de configuration. Voir question similaire ici:
Erreur d'utiliser une section enregistré comme allowDefinition='MachineToApplication" au-delà du niveau de l'application
http://mylocalapi:133/api/Values/Get
et j'obtiens un résultat. J'ai un site externe qui esthttp://example.org
et je voudrais exécuter la mêmehttp://mylocalapi:133/api/Values/Get
. Comment puis-je le faire? stackoverflow.com/questions/43002283/...La conversion de votre dossier/projet dans une application dans IIS peuvent résolu cette erreur.
Le contenu du web.config dans le sous-répertoire doit être placede dans le répertoire racine. La configuration dans le sous-répertoire est faire d'IIS traiter le sous-répertoire racine de l'application, mais ce n'est pas la racine de l'application. C'est pourquoi vous obtenez le message d'erreur allowDefinition='MachineToApplication'.
Cette erreur semble se produire si vous essayez d'ouvrir un asp.net SITE web et d'exécuter, alors qu'il était à l'origine encapsulé par une SOLUTION.
Ce faire: Fermer le site, trouver la solution liée à la (.la sln-fichier) dans le système de fichiers et ouvrir ce en place. À l'intérieur de la solution vous allez maintenant être en mesure d'utiliser votre site web sans obtenir cette erreur.
Ce serait bien si Microsoft pourrait guider les gens dans la bonne direction quand ils se perdent dans asp.net comme cette. Le présent message d'erreur sur allowDefinition=MachineToApplication n'est pas compréhensible pour l'homme normal comme moi.
J'ai ouvert le site web de IIS place du système de fichiers et cela a fonctionné.
J'ai supprimé mon bin et obj dossier pour le projet, puis reconstruit la solution et tout fonctionnait bien...pas techniquement savvy réponse, mais il fonctionne.
Cette erreur se produit si votre site web.le fichier de configuration et votre tous aspx fichier ne sont pas dans le même dossier. merci donc de placer tous les fichiers dans le même dossier.
Grâce.