我想在一个应用程序中管理两个web.config文件,一个用于前端用户,另一个用于后端(admin)user.for admin部分我创建了一个名为 admin 的文件夹strong>在同一个网站中。以下settiongs位于 admin / web.config
当我尝试运行应用程序时,我收到以下错误消息:
在应用程序级别之外使用注册为allowDefinition ='MachineToApplication'的部分是错误的。此错误可能是由于虚拟目录未配置为IIS中的应用程序
请给我一些解决这个问题的建议。 提前致谢
答案 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"
的配置设置
在排除此文件(无论如何都没有使用)时,应用程序已成功构建。