在应用程序级别之外使用注册为allowDefinition ='MachineToApplication'的部分是错误的。

时间:2012-04-04 22:37:00

标签: asp.net-mvc-3 web-config forms-authentication

你好

我在web.config中添加了表单身份验证标记,之后当我尝试在本地启动我的MVC应用程序时出现此错误。请任何帮助,所有其他帖子都是关于部署应用程序和此错误

2 个答案:

答案 0 :(得分:1)

这是一个奇怪的 - 我有同样的错误 - 但很容易解决。

只需删除obj文件夹的内容并重建即可。塔达!

(我在following post中找到答案。)

:)

答案 1 :(得分:1)

当obj文件夹中存在Web项目输出(模板化web.config或临时发布文件)时,会发生此问题。使用的ASP.NET编译器不够智能,无法忽略obj文件夹中的内容,因此会抛出错误。

另一个解决方法是在调用< AspNetCompiler>之前核对发布输出。打开你的.csproj并改变它:

<Target Name="MvcBuildViews" AfterTargets="AfterBuild" Condition="'$(MvcBuildViews)'=='true'">
  <AspNetCompiler VirtualPath="temp" PhysicalPath="$(WebProjectOutputDir)" />
</Target>

到此:

<Target Name="MvcBuildViews" AfterTargets="AfterBuild" Condition="'$(MvcBuildViews)'=='true'">
  <ItemGroup>
    <ExtraWebConfigs Include="$(BaseIntermediateOutputPath)\**\web.config" />
    <ExtraPackageTmp Include="$([System.IO.Directory]::GetDirectories(&quot;$(BaseIntermediateOutputPath)&quot;, &quot;PackageTmp&quot;, System.IO.SearchOption.AllDirectories))" />
  </ItemGroup>
  <Delete Files="@(ExtraWebConfigs)" />
  <RemoveDir Directories="@(ExtraPackageTmp)" />
  <AspNetCompiler VirtualPath="temp" PhysicalPath="$(WebProjectOutputDir)" />
</Target>

这将删除\ obj下的所有web.configs,以及\ obj下的所有PackageTmp文件夹。