2013-04-30 3 views
6

Dans le répertoire racine j'ai la structure suivanteweb.config allowDefinition = erreur MachineToApplication

.. 
.. 
.. 
web.config 
Report Folder 
- Login.aspx 
- Web.config 
    | 
    |-> ViewReport 
     |  
     |-> Report.aspx 

Dans mon fichier web.config dans le dossier Rapport je donne les résultats suivants:

<?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 je commencer le débogage Je reçois le message suivant:

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 un répertoire virtuel n'étant pas configuré en tant qu'application dans IIS.

NOTE que dans mon web.config racine j'ai quelque chose comme ce qui suit:

Dans ma racine, j'ai déjà les suivantes:

  <system.web>   
      <authentication mode="Forms"> 
       <forms loginUrl="Str/StrUserLogin.aspx" timeout="2880" slidingExpiration="true" />   
       </authentication> 
      <authorization> 
       <allow users="*" /> 
      </authorization>  
     </system.web> 
+0

Avez-vous créé un répertoire virtuel à la racine du site? – IrishChieftain

+0

Est-ce que je fais cela même si je travaille sur localhost? –

+0

Oui, c'est probablement la cause de cette erreur. – IrishChieftain

Répondre

8

Créez un répertoire virtuel à la racine du site. Cela peut être fait via les propriétés du projet dans VS sous l'onglet Web.

Il est également possible que vous ayez défini des éléments dans le sous-répertoire qui doit se trouver dans le fichier de configuration racine. Voir question similaire ici:

Error to use a section registered as allowDefinition='MachineToApplication' beyond application level

+0

Merci. J'ai un web.config dans la racine et le sous-répertoire. D'après ce que vous avez mentionné ci-dessous, pourquoi ai-je ce message d'erreur? –

+0

Avez-vous créé le répertoire virtuel? J'ai mis à jour ma réponse. – IrishChieftain

+0

http://msdn.microsoft.com/en-us/library/aa719558%28v=vs.71%29.aspx – IrishChieftain

2

Le contenu du web.config dans le sous-répertoire devrait être placé dans le répertoire racine. La configuration dans le sous-répertoire fait en sorte que IIS traite le sous-répertoire comme la racine de l'application mais n'est pas la racine de l'application. C'est pourquoi vous obtenez l'erreur allowDefinition = 'MachineToApplication'.

+0

Merci typetrice. J'ai mis à jour ce que j'ai dans la racine web.config. Je ne sais pas comment combiner ce que j'ai dans le sous-répertoire à ce qui est dans la racine web.config. S'il vous plaît aider –

-3

Cette erreur se produit si votre fichier web.config et votre tout fichier ASPX ne sont pas dans le même dossier. alors s'il vous plaît mettez tous les fichiers dans le même dossier.

Merci.

0

J'ai ouvert le site Web à partir d'IIS au lieu du système de fichiers et cela a fonctionné.

4

La conversion de votre dossier/projet dans une application dans IIS peut résoudre cette erreur.

+1

Cela m'a aidé. Merci ! :) – Coder

Questions connexes