Ошибка использования раздела, зарегистрированного как allowDefinition = 'MachineToApplication'
Я использую visual studio 2012, когда пытаюсь опубликовать свое веб-приложение, я получаю следующую ошибку:
Error 1 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. E:\Temp\BUILD\Debug\AspnetCompileMerge\Source\bin\web.config 24 0 Pixelate
Вот содержимое окна вывода:
1>------ Build started: Project: Pixelate, Configuration: Debug Any CPU ------
1> No way to resolve conflict between "System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=969db8053d3322ac, Retargetable=Yes" and "System.Core, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e". Choosing "System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=969db8053d3322ac, Retargetable=Yes" arbitrarily.
1> No way to resolve conflict between "System.ServiceModel.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" and "System.ServiceModel.Web, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e". Choosing "System.ServiceModel.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" arbitrarily.
1> Pixelate -> [...]\bin\TwistedPixel.Pixelate.dll
1> '[...]\bin'
1> CMD.EXE was started with the above path as the current directory.
1> UNC paths are not supported. Defaulting to Windows directory.
2>------ Publish started: Project: Pixelate, Configuration: Debug Any CPU ------
2>Connecting to [...]...
2>Transformed Web.config using [...]\Web.Debug.config into E:\Temp\BUILD\Debug\TransformWebConfig\transformed\Web.config.
2>Transformed[...]\Web.config using [...]\bin\Web.Debug.config into E:\Temp\BUILD\Debug\TransformWebConfig\transformed\bin\Web.config.
2>Copying all files to temporary location below for package/publish:
2>E:\Temp\BUILD\Debug\AspnetCompileMerge\Source.
2>C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_compiler.exe -v / -p E:\Temp\BUILD\Debug\AspnetCompileMerge\Source -c -d E:\Temp\BUILD\Debug\AspnetCompileMerge\TempBuildDir
2>E:\Temp\BUILD\Debug\AspnetCompileMerge\Source\bin\web.config(24,0): 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.
2>
========== Build: 1 succeeded, 0 failed, 2 up-to-date, 0 skipped ==========
========== Publish: 0 succeeded, 1 failed, 0 skipped ==========
Если кто-то может пролить свет на то, почему это происходит и как его исправить, это было бы здорово.
Я пробовал очистить и перестроить (он отлично восстанавливает). Я попытался удалить bin, obj и переместить выходной каталог temp - все еще ошибка сохраняется.
Ответы
Ответ 1
Это проблема с дополнительным web.config
, созданным процессом публикации. Наведите указатель мыши на вкладку web.config
, и вы увидите дополнительное местоположение файла, которое вы можете очистить. Возможно, даже для другой конфигурации, но она все равно выдает ошибку (например, Debug vs. Release) Вероятно, что-то вроде <app>\obj\Release\Package\PackageTmp\web.config
.
Удалите его, и вам должно быть хорошо идти. Могу повториться позже, но публикует.
Ответ 2
Это, по-видимому, довольно распространенная проблема, и сообщение об ошибке абсолютно не помогает, когда это вызвано дополнительным web.config, созданным функцией веб-публикации в Visual Studio.
Мне удалось преодолеть, заставив мой проект приложения ASP.NET очистить каталог obj после каждой сборки.
Добавьте следующее к событию post-build и запустите событие post-build: "Always"
rmdir /S /Q "$(ProjectDir)\obj"
Ответ 3
Существует проблема с одним из параметров в вашем web.config. Ошибка может дать вам представление о местоположении.
Ответ 4
Очистите решение, в то время как ваше решение настроено в режиме выпуска.
Очистите решение, в то время как ваше решение настроено в режиме отладки.
Создайте, пока ваше решение настроено в режиме отладки.