2009-02-06 3 views
22

Я получаю следующую ошибку при попытке скомпилировать сайт asp.net с помощью специального скрипта сборки.Ошибка MSBuild при компиляции сайта 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. 

Хотя описание подробно, я не понимаю, что именно означает. Я не настроил IIS для размещения этого сайта, и я не думаю, что смогу, поскольку я запускаю версию Vista Home Basic. Таким образом, веб-сайт не может быть создан с использованием пользовательских сценариев? Ответьте, как я хочу проверить эту функцию.

+0

возможный дубликат [allowDefinition = MsBuild ошибка 'MachineToApplication'] (http://stackoverflow.com/ questions/5271320/allowdefinition-machinetoapplication-msbuild-error) – Flexo

+0

Я тоже удалял папку obj, пока не столкнулся с сценарием сборки, который этого требовал. Catch-22, я использовал принятый ответ на следующей ссылке SO, чтобы переместить местоположение папки Obj в C: \ Temp \ BUILD. Вы должны сделать это в файле csproj, но это отличное решение. Вот ссылка: http://stackoverflow.com/questions/261422/visualstudio-how-to-save-the-obj-folder-somewhere-else –

ответ

4

Скорее всего, ваш файл web.config помещается в каталог, который не является корнем приложения. В большинстве версий IIS, вы можете преобразовать любую папку на вашем веб-сайте в качестве корня приложения:

  1. Открыть IIS и перейдите в соответствующую папку
  2. правой кнопкой мыши на папке, выберите свойства
  3. Под Настройки приложения и рядом с именем приложения, нажмите Создать
  4. Применить и закрыть

Если это не исправить вашу проблему, может быть другой ошибка конфигурации, либо с IIS, либо с вашим приложением.

0

В IIS перейдите в папку, в которой работает приложение, щелкните правой кнопкой мыши по нему, перейдите к свойствам. На вкладке «Каталог» найдите «Настройки приложения». Нажмите кнопку «Создать».

48

У меня была эта ТОЧНАЯ ТОЧНАЯ проблема и, наконец, обнаружен мошенник. Web.config был помещен в мою папку obj ... сделайте себе одолжение и выполните поиск во всех подкаталогах файла web.config. Я удалил его, и все было в порядке.

+4

Спасибо, это решило проблему для меня. У меня был тот же проблема. Я удалил папку object \ debug, и она снова работала. –

+4

+1 - Приятно, спасибо. Другое примечание: если вы создадите папку резервного копирования в своем проекте при конвертировании, вам также нужно будет удалить/переименовать web.config. –

+1

спасибо! это приводило меня в смятение в течение нескольких часов. мой бродячий web.config находился в папке/views. * sigh * – Patricia

15

Файл rogue web.config в папке obj, скорее всего, будет вызван, когда вы будете публиковать веб-сайт. Поэтому просто очистите его после того, как вы сделали публикацию.

4

, если это происходит после того, как виртуального каталога уже создан сделайте следующее:

  • правой кнопкой мыши на сети.Конфигурационные
    • свойства
      • Сложение Действие: Содержание
      • Копировать в папку вывода: Не копировать
  • если трансформируются (применяются ко всем конфигурациям)
    • свойства
      • Сложение Действие: Нет
      • Копировать в папку вывода: Не копировать
+0

Первый вариант работал отлично для меня, хотя у меня есть преобразования веб-конфигурации. – Nekresh

+0

Человек, этот вопрос сработал так долго. Это была проблема! – FrankyBoy