2010-07-08 5 views
1

Chaque fois que je publie mon application Web MVC dans VS 2010 via la fonction de publication en un clic (je ne fais pas de transformations web.config ou quoi que ce soit de fantaisiste!). La prochaine fois que je viens de construire l'application que je reçois l'erreur suivante:Problème après la publication de l'application Web depuis VS 2010

Il est une erreur d'utiliser une partie 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. dans ... MyWebApp \ obj \ release \ package \ packagetmp \ web.config

Une nouvelle copie du fichier web.config est en effet créé par VS2010 en dessous de la ... MyWebApp \ obj \ dossier alors j'ai supprimé l'ensemble du dossier obj et j'ai ensuite pu construire à nouveau.

Mais je ne devrais pas avoir à le faire chaque fois que je publie - je dois avoir quelque chose de mal configuré - quelqu'un peut-il vous aider s'il vous plaît.

Merci.

Répondre

0

Je viens de trouver un travail autour de ce qui a fonctionné pour moi, ouvrez le .csproj pour votre projet web et changer le nœud sous le nœud du projet \ PropertyGroup à ceci:

de ceci: <MvcBuildViews> vrai </MvcBuildViews >

à ceci: <MvcBuildViews> faux </MvcBuildViews >

Cela a fonctionné pour moi, j'espère que cela fonctionnera pour vous aussi.

+2

Notez que bien que cela ne contourne pas ce problème, cela signifie que vous n'avez plus de validation au moment de la compilation de vos vues. Pour moi, c'est un problème majeur. –

1

Il s'agit malheureusement d'un problème connu lié à la publication d'une application Web dans le système de fichiers. Cela affecte toujours la version de publication (RTM) de Visual Studio 2010. Il n'est pas limité aux versions bêta ou RC.

Ce problème m'a également «mordu», et moi aussi, je devais supprimer manuellement les dossiers Debug et Release à l'intérieur du dossier obj dans mon dossier de solution de site Web.

La vraie réponse pour un système automatisé « solution » peut être trouvée dans this answer à l'autre Stack Overflow question:

Why do I randomly get a “error to use section registered as allowDefinition='MachineToApplication'” when building an MVC project?

En un mot, vous devez supprimer les fichiers de web.config soit le Debug ou Release dossiers (ou les deux!), et cela est réalisé avec une commande de pré-construction (configuré dans l'onglet Build Events de la page Project Properties de votre solution):

del "$(ProjectDir)\obj\Debug\Package\PackageTmp\web.config" 
del "$(ProjectDir)\obj\Release\Package\PackageTmp\web.config" 

Personnellement, je supprime l'intégralité du dossier obj car tous ces fichiers sont recréés avec chaque version de toute façon.

Questions connexes