2009-02-06 8 views
22

Je reçois l'erreur suivante lorsque j'essaie de compiler un site asp.net à l'aide d'un script de génération personnalisé.Erreur MSBuild lors de la compilation du site Web ASP.NET

error ASPCONFIG: It is an error to use a section registered as allowDefinition='MachineToApplication' beyond application level. This error can be caused by a virtual directory not being configured as an application in IIS. 

Bien que la description soit détaillée, je ne comprends pas ce que cela signifie exactement. Je n'ai pas configuré IIS pour héberger ce site Web et je ne pense pas que je serai capable de le faire car je cours Vista Home Basic version. Donc, le site ne peut pas être construit en utilisant des scripts personnalisés? S'il vous plaît répondre comme je veux tester cette fonctionnalité.

+0

double possible de [allowDefinition = erreur msbuild 'MachineToApplication'] (http://stackoverflow.com/ questions/5271320/allowdefinition-machinetoapplication-msbuild-error) – Flexo

+0

Moi aussi, je supprimais le dossier obj jusqu'à ce que je rencontre un conflit avec un script de construction qui l'exigeait. Catch-22, j'ai utilisé la réponse acceptée sur le lien SO suivant pour déplacer l'emplacement du dossier Obj à C: \ Temp \ BUILD. Vous devez le faire par fichier csproj, mais c'est une excellente solution. Voici le lien: http://stackoverflow.com/questions/261422/visualstudio-how-to-save-the-obj-folder-somewhere-else –

Répondre

4

Il est probable que votre fichier web.config soit placé dans un répertoire qui n'est pas la racine de l'application. Sur la plupart des versions de IIS, vous pouvez convertir un dossier sur votre site Web à une racine de l'application:

  1. Ouvrez IIS et accédez au dossier approprié
  2. Faites un clic droit sur le dossier, sélectionnez Propriétés
  3. Sous Paramètres de l'application, et à côté du nom de l'application, cliquez sur Créer
  4. Appliquer et fermer

Si cela ne résout pas votre problème, il peut y avoir une autre erreur de configuration, soit avec IIS ou votre application.

0

Dans IIS, accédez au dossier sous lequel l'application s'exécute, cliquez dessus avec le bouton droit, accédez aux propriétés. Dans l'onglet Répertoire, recherchez "Paramètres de l'application". Cliquez sur le bouton créer.

48

J'ai eu ce problème SAME EXACT et finalement découvert un web.config escroc a été placé dans mon dossier obj ... faites-vous une faveur et faire une recherche dans tous les sous-répertoires pour un fichier web.config. Je l'ai supprimé et tout était redevenu normal.

+4

Merci, cela a résolu le problème pour moi.J'ai eu le même problème. J'ai supprimé le dossier object \ debug et cela a fonctionné à nouveau. –

+4

+1 - Bien, merci. Une autre remarque, si vous créez le dossier de sauvegarde dans votre projet lors de la conversion, vous devrez supprimer/renommer le web.config là aussi. –

+1

merci! Cela me rendait fou pendant des heures. mon web.config errant était dans le dossier/views. * sigh * – Patricia

15

Le fichier Web.config non autorisé dans le dossier obj est plus susceptible d'être provoqué lorsque vous effectuez un site Web de publication. Donc nettoyez juste après que vous ayez fait la publication.

4

si cela se produit après le répertoire virtuel est déjà créé, procédez comme suit:

  • clic droit sur le web.config
    • propriétés
      • Build Action: Contenu
      • Copie vers le répertoire de sortie: Ne pas copier
  • si transformé (appliquer à toutes les configurations)
    • propriétés
      • Build Action: Aucune
      • Copie vers le répertoire de sortie: Ne pas copier
+0

La première option a bien fonctionné pour moi, même si j'ai des transformations de configuration web. – Nekresh

+0

Man, cette question m'a fait trébucher depuis si longtemps. C'était le problème! – FrankyBoy

Questions connexes