Ошибка MSBuild при компиляции веб-сайта ASP.NET

Я получаю следующую ошибку, когда пытаюсь скомпилировать сайт 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. Таким образом, веб-сайт нельзя создать с помощью пользовательских сценариев? Пожалуйста, ответьте, так как я хочу протестировать эту функцию.


person kjayakum    schedule 06.02.2009    source источник
comment
Я тоже удалял папку obj, пока у меня не возник конфликт со сценарием сборки, который требовал этого. Catch-22, я использовал принятый ответ по следующей ссылке SO, чтобы переместить папку Obj в C:\Temp\BUILD. Вы должны сделать это для каждого файла csproj, но это отличное решение. Вот ссылка: stackoverflow.com/questions/261422/   -  person Valamas    schedule 17.11.2011
comment
возможный дубликат ошибки allowDefinition='MachineToApplication' msbuild   -  person Flexo    schedule 17.11.2011


Ответы (5)


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

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

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

person Karmic Coder    schedule 06.02.2009

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

person Jason Wicker    schedule 20.01.2010
comment
Спасибо, это решило проблему для меня. У меня была такая же проблема. Я удалил папку object\debug, и она снова заработала. - person Michael Wells; 18.09.2010
comment
+1 - Хорошо, спасибо. Еще одно замечание: если вы создаете папку резервного копирования в своем проекте при конвертации, вам также нужно будет удалить/переименовать там файл web.config. - person Kyle Rosendo; 21.04.2011
comment
Благодарность! это сводило меня с ума в течение нескольких часов. мой заблудший web.config находился в папке /views. вздох - person Patricia; 15.08.2011
comment
@Patricia, это нормально для ASP.NET MVC - скорее всего, это файл web.config в папке obj, созданный путем выполнения публикации. - person Daniel O; 27.10.2011
comment
@DanielO - я попытался проголосовать за ваш комментарий, поскольку это именно та проблема, с которой я столкнулся. Публикация действительно была источником проблемы. - person Jim Raden; 09.12.2011
comment
Спасибо! Мне также удалось найти его в моей папке bin\, так как он был указан в файле csproj как OutputPath. - person Joisey Mike; 14.02.2012
comment
Была такая же проблема. Сделал это :) for /F %i in ('dir obj /s /b') do del /s /q %i - person jamiebarrow; 26.03.2013
comment
Я получил эту ошибку только при сканировании с помощью HP Fortify. Исправление сработало. - person Keith Walton; 24.11.2015
comment
Спасибо! Это сводило меня с ума всю неделю. Оказывается, это произошло, когда я оптимистично переключился на VS 2017 на несколько дней. Вернемся к 2015 году сейчас и крайне осторожно. - person indra; 04.08.2017

Мошеннический файл web.config в папке obj, скорее всего, возникает при публикации веб-сайта. Так что просто очистите его после того, как вы сделали публикацию.

person Daniel O    schedule 14.01.2012

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

  • right-click on web.config
    • properties
      • Build Action: Content
      • Копировать в выходной каталог: не копировать
  • if transformed (apply to all configurations)
    • properties
      • Build Action: None
      • Копировать в выходной каталог: не копировать
person mg3    schedule 01.05.2015
comment
Первый вариант у меня работал нормально, хотя у меня есть преобразования веб-конфигурации. - person Nekresh; 01.09.2015
comment
Боже, эта проблема так долго ставила меня в тупик. Это было проблемой! - person FrankyBoy; 09.03.2016

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

person Dave Harding    schedule 06.02.2009