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

时间:2010-10-18 21:42:30

标签: asp.net iis web-config virtual-directory

我想在一个应用程序中管理两个web.config文件,一个用于前端用户,另一个用于后端(admin)user.for admin部分我创建了一个名为 admin 在同一个网站中。以下settiongs位于 admin / web.config

                                           

               

                                                                         

      

                                                                                                     

当我尝试运行应用程序时,我收到以下错误消息:

在应用程序级别之外使用注册为allowDefinition ='MachineToApplication'的部分是错误的。此错误可能是由于虚拟目录未配置为IIS中的应用程序

下面讨论了同样的问题 ASP.NET What causes: It is an error to use a section registered as allowDefinition='MachineToApplication' beyond application...?

It is an error to use a section registered as allowDefinition='MachineToApplication' beyond application level

请给我一些解决这个问题的建议。 提前致谢

4 个答案:

答案 0 :(得分:6)

当我在另一个Web应用程序中有一个Web应用程序导致两个Web.config文件时,我遇到了同样的问题。我删除了一个,问题解决了。 由于子级别中的配置设置可以覆盖父级别中的配置设置,因此当您有2个web.config文件时,如果重新定义了无法覆盖的配置设置(如身份验证或会话状态),则会发生此错误。如果您可以在较低级别的web.config以及更高级别的web.config中设置身份验证/会话状态,则会出现问题

答案 1 :(得分:4)

  • 有大量的 有关获取此错误的信息 IIS。我在问题上花了好几个小时 像这样,因为,从来没有 是一个明确的答案。

    你会听到像

    这样的话
      
        

    这意味着如果您有应用程序,则不应进行配置     MachineToApplication设置     web.config位于子目录中。

      
         

    你所要做的就是设置   MachineToApplication设置在你的   应用程序的根目录,它们将是   继承在子目录中。

         

    解决方案:

         

    配置所有MachineToApplication   应用程序根目录中的设置,   并删除所有MachineToApplication   来自您的应用程序的设置   子目录。

    所有答案都失败了 注意是有无数的 文件权限,安全性等。 继续使用IIS中的任何文件。

    过去比较容易,但随着 增加的是增量,它是 变得越来越复杂。

    我有一个我用过的解决方案 让我的IIS工作 -

    第一。在新的测试一个简单的HTML页面 网络应用。如果你能做到这一点, 然后你应该对下一个好 步骤。

    第二。当你想到的时候 开始这个的问题,你有一个 Machine.config文件中 E:\ WINDOWS \ Microsoft.NET \框架\ V2.0.50727 \ CONFIG 框架的目录。

    这是设置Type的文件 AllowedDefinitions。 ( 寻找 那个在配置文件中) allowDefinition的= “MachineToApplication” 或allowDefinition =“机器”

    当有人说你必须放 您的应用程序中的web.config “Root”文件夹,取决于你的方式 应用程序设置,将指示 把你的web.config放在哪里。

    为了让我的工作,我把它放入 E:\ Inetpub \ wwwroot文件夹。

    第三。你将不得不测试哪个 要包含在配置中的部分 根文件夹,以及您可以使用的文件夹 把你的各种网络“应用程序” 文件夹。

    第四。这是一项正在进行的工作,但是 我想在那里得到它 我正在努力,它很新鲜 在我的脑海里......

    当我解雇时,我会发布更多内容 更多的问题。

    我打算发布一篇非常详细的文章 后来我解读时的解释 所有的神秘,有目的 没有证件,有时会误导, 关于配置问题的信息, 等,以使IIS正常运行。

    即。我厌倦了黑客攻击 试图让它行为正常, 但我想彻底测试一下 系统输出和文件,确切的是什么 需要做,以及为什么要得到 应用程序启动并运行 快速...

    感谢您阅读本文。

答案 2 :(得分:3)

您需要将其设置为IIS中的应用程序。

答案 3 :(得分:0)

使用Kentico安装时遇到了同样的问题。不可否认,这不是灵丹妙药,但在这种情况下,这是因为其中一个基本模板CorporateSiteAspx有自己的webconfig文件,其中包含使用requirePermission="false" allowDefinition="MachineToApplication"的配置设置

在排除此文件(无论如何都没有使用)时,应用程序已成功构建。