【问题标题】:Problem after publishing web application from VS 2010从 VS 2010 发布 Web 应用程序后出现问题
【发布时间】:2010-07-08 14:40:23
【问题描述】:

每当我通过一键发布功能在 VS 2010 中发布我的 MVC Web 应用程序时(我还没有做任何 web.config 转换或任何花哨的事情 - 还没有!)。下次我来构建应用程序时,我收到以下错误:

使用注册为 allowDefinition='MachineToApplication' 的部分是错误的 超出应用层。此错误可能是由于没有虚拟目录 在 IIS 中配置为应用程序。在 ...MyWebApp\obj\release\package\packagetmp \web.config

VS2010 确实在 ...MyWebApp\obj\ 文件夹下创建了 web.config 文件的新副本,因此我删除了整个 obj 文件夹,然后我能够再次构建。

但我不应该每次发布时都这样做 - 我必须有一些配置不正确 - 任何人都可以帮忙。

谢谢。

【问题讨论】:

    标签: visual-studio-2010 web-config


    【解决方案1】:

    不幸的是,这是一个将 Web 应用程序发布到文件系统的已知问题。这仍然会影响 Visual Studio 2010 的发布版本 (RTM)。它不仅限于 Beta 或 RC 版本。

    这个问题也“困扰”了我,我也不得不手动删除我的网站解决方案文件夹中 obj 文件夹中的 DebugRelease 文件夹。

    自动“解决方法”的真正答案可以在 this answer 中找到另一个 Stack Overflow 问题:

    Why do I randomly get a “error to use section registered as allowDefinition='MachineToApplication'” when building an MVC project?

    简而言之,您需要从DebugRelease 文件夹(或两者!)中删除web.config 文件,这可以通过预构建命令(在Build Events 选项卡中配置)来实现解决方案的Project Properties 页面):

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

    就我个人而言,我删除了整个 obj 文件夹,因为所有这些文件都是在每次构建时重新创建的。

    【讨论】:

      【解决方案2】:

      我刚刚找到了一个对我有用的解决方法,打开您的 Web 项目的 .csproj 并将 Project\PropertyGroup 节点下的节点更改为:

      从此:

      对此:

      这对我有用,希望它也对你有用。

      【讨论】:

      • 请注意,虽然这确实解决了这个问题,但这意味着您不再获得视图的编译时验证 - 对我来说这是一个交易破坏者。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-24
      • 2011-08-15
      • 1970-01-01
      • 1970-01-01
      • 2020-11-12
      • 2010-10-05
      相关资源
      最近更新 更多