views:

134

answers:

1

I have seen a few questions on SO about a similar error when deploying a website, but I seem to randomly get this error when building an ASP.NET MVC website in Visual Studio. Performing a clean usually fixes it, but is there any way to avoid this completely?

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. d:...\obj\debug\package\packagetmp\web.config

Note that it is complaining about the root web.config, not the one from the Views subdirectory.

+2  A: 

I assume you're using the publish feature. I'm getting this error when using publish to a file directory.

Publishing your app creates a temporary copy of your application in the \obj\debug\package\packagetmp\web.config directory.

That web.config confuses the IDE which thinks it is an application, but its not in a virtual directory so you get the error.

Workaround:

It's a simple workaround to add this to a pre-build command:

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

Failed workarounds:

  • Changing the directory for 'Location where package will be created' under 'Package/Publish Web' settings doesn't seem to have an effect - even if you get clever and try to put it outside the project root with ......

  • Creating an actual virtual directory in IIS for 'PackageTmp' didn't fix it either!

CONNECT ISSUE:

http://connect.microsoft.com/VisualStudio/feedback/details/503254/web-config-in-package-folder-makes-it-impossible-to-compile-debug

I hope they fix this in the RC!

Simon_Weaver
It isn't fixed in the final build of Visual Studio 2010. I get this error, too.
Nick VanderPyle
I ran into this, and typical of Microsoft, closing the connect issue as "Not Reproducible". #fail
mxmissile
Updated non closed CONNECT ISSUE: https://connect.microsoft.com/VisualStudio/feedback/details/556312/
mxmissile