2009-02-06 13 views
22

Viene visualizzato il seguente errore quando si tenta di compilare un sito asp.net utilizzando uno script di build personalizzato.Errore MSBuild durante la compilazione del sito 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. 

Sebbene la descrizione sia dettagliata, non capisco cosa significhi esattamente. Non ho configurato IIS per ospitare questo sito Web e non penso che sarò in grado di eseguire la versione di Vista Home Basic. Pertanto, il sito Web non può essere creato utilizzando script personalizzati? Rispondi come voglio testare questa funzionalità.

+0

possibile duplicato del [allowDefinition = errore msbuild 'MachineToApplication'] (http://stackoverflow.com/ domande/5271320/allowdefinition-machinetoapplication-msbuild-error) – Flexo

+0

Anche io stavo cancellando la cartella obj finché non ho avuto un conflitto con uno script di build che lo richiedeva. Catch-22, ho usato la risposta accettata sul seguente link SO per spostare la posizione della cartella Obj su C: \ Temp \ BUILD. Devi farlo per file csproj, ma è un'ottima soluzione. Ecco il link: http://stackoverflow.com/questions/261422/visualstudio-how-to-save-the-obj-folder-somewhere-else –

risposta

4

È probabile che il file web.config sia inserito in una directory che non è la radice dell'applicazione. Sulla maggior parte delle versioni di IIS, è possibile convertire qualsiasi cartella sul vostro sito web per una radice di applicazione:

  1. Aprire IIS e passare alla cartella appropriata
  2. destro clic sulla cartella, selezionare Proprietà
  3. Sotto Impostazioni applicazione, e accanto al nome dell'applicazione, fare clic Crea
  4. Applicare e vicino

Se questo non risolve il problema, ci può essere un altro errore di configurazione, con IIS o la tua applicazione.

0

In IIS, accedere alla cartella in cui viene eseguita l'applicazione, fare clic con il pulsante destro del mouse, passare a Proprietà. Nella scheda Directory, cercare "Impostazioni applicazione". Fai clic sul pulsante Crea.

48

Ho avuto questo problema ESAME ESATTO e alla fine ho scoperto un rogue Web.config è stato inserito nella mia cartella obj ... fatevi un favore e fate una ricerca in tutte le sottodirectory per un file web.config. L'ho cancellato e tutto era tornato alla normalità.

+4

Grazie, questo ha risolto il problema per me.Ho avuto lo stesso problema. Ho cancellato la cartella object \ debug e ha funzionato di nuovo. –

+4

+1 - Bello, grazie. Un'altra nota, se si crea la cartella di backup all'interno del progetto durante la conversione, sarà necessario rimuovere/rinominare anche il web.config. –

+1

grazie! questo mi stava facendo impazzire per ore. il mio stray web.config era nella cartella/views. * sigh * – Patricia

15

È probabile che il file rogue web.config nella cartella obj sia causato quando si esegue un sito Web di pubblicazione. Quindi, basta ripulirlo dopo aver fatto la pubblicazione.

4

se questo accade dopo che il virtual-directory è già stato creato effettuare le seguenti operazioni:

  • tasto destro del mouse sul web.config
    • proprietà
      • Corporatura Azione: Content
      • copia nella directory di output: non copiare
  • se trasformato (si applica a tutte le configurazioni)
    • proprietà
      • Corporatura Azione: Nessuno
      • copia nella directory di output: Non copiare
+0

La prima opzione ha funzionato bene per me, anche se ho delle trasformazioni di configurazione web. – Nekresh

+0

Uomo, questo problema mi ha fatto incazzare per così tanto tempo. Questo era il problema! – FrankyBoy

Problemi correlati