我在Visual Studio中发布我的ASP.NET MVC应用程序时发现了一个奇怪的问题:
发布后,它将无法编译。我收到这个错误:
在应用程序级别之外使用注册为allowDefinition ='MachineToApplication'的部分是错误的。此错误可能是由于虚拟目录未在IIS中配置为应用程序。
到目前为止,根据我的研究,当包含某些部分的Web.config文件比项目文件夹层次结构中的root更深时,通常会发生此错误。
好吧,事实证明我在层次结构中有更深层次的Web.config文件,我在这些文件夹中找到了这些文件:
问题是,我没有将这些文件放在这些位置。它们在发布过程中被复制(特别是FTP发布)。如果我手动删除Web.configs(或重建我的解决方案),我再次能够编译。 (好吧,重建通常有效 - 如果我在发布后从Debug切换到Release或反之亦然,它会失败。)
现在,我的问题:
我搞砸了一个设置或做错了什么,或者这基本上只是我必须处理的麻烦?我应该担心吗?这个问题是否可以解决?
答案 0 :(得分:5)
您是否在网络项目.csproj文件中使用<MvcBuildViews>true</MvcBuildViews>
?如果是的话,那可能就是问题所在。把它弄错了,问题就消失了。
如果你真的想使用MvcBuildViews功能的另一个解决方案在这里描述:link。我没有测试它,但似乎有很好的评论!