2010-03-01 46 views
177

我已经下载了ASP.Net中的在线项目。在运行应用程序时,出现错误错误:allowDefinition ='MachineToApplication'超出应用程序级别

It is an error to use a section registered as allowDefinition='MachineToApplication' beyond application level. This error can be caused by a virtual directory not being configured as an application in IIS.

我应该在web.config或其他地方做出什么改变才能使其工作?

+51

没有在网络上找到答案为我工作。我的问题是通过显示所有隐藏的文件/文件夹并删除'obj'文件夹解决的。 – 2012-08-07 17:39:04

+6

这个问题在VS2012中仍然存在。我已经向微软公布了一份错误报告。任何遇到此问题的人请立即提供bug报告https://connect.microsoft.com/VisualStudio/feedback/details/779737/error-allowdefinition-machinetoapplication-beyond-application-level – 2013-02-21 20:34:21

+3

删除obj文件夹也为我解决了这个问题。谢谢@尼克! (对于复兴抱歉) – 2013-07-31 14:43:33

回答

10

错误提示您正在使用的代码需要在IIS上设置虚拟目录。

查阅文档并添加所需的虚拟目录。它应该是一个有web.config的目录(不是根目录)。

+8

在较低目录中删除第二个web.config解决了我的问题。 – 2012-05-24 04:06:17

+10

我的一个人在他的''authentication mode =“Forms”> Web.config'在'Views'而不是trunk文件夹中,导致了这个问题。 – 2013-04-01 14:59:28

20

无。您需要将您放置该网站的目录设置为web application within IIS

+1

虽然技术上这是一个改变“在其他地方做这个工作”) – 2010-03-01 14:22:19

+9

但是,我没有使用IIS,只有VS2010内置的网络服务器... – 2010-05-22 20:50:12

+1

,这是解决方案,如果你得到这个错误在你的网络应用! = P – gideon 2011-11-22 04:50:42

1

可能你在项目文件夹内没有配置为虚拟目录的子asp.net项目文件夹。设置项目以在IIS中运行。

84

只是遇到了this post而这件事发生在我身上。
只需Clean该项目和错误消失。 (必须是VS2010的bug)

+0

此解决方案如果您将此错误视为Visual Studio中的错误。 – gideon 2011-11-22 04:50:19

+0

适合我thanx。我正在使用VS 2010 :) thanx! – 2011-11-25 07:51:43

+19

有时清理不会清除'obj'文件夹。这有时也需要删除。 – jaypeagi 2013-03-22 09:55:07

21

我刚建立我的网站的第二个版本时有这个问题。当我第一次创建它时,它并没有发生。

我刚刚删除了bin和obj文件夹,运行Clean Solution并重新构建它,这次没有任何问题。

+0

为我工作。谢谢! – HerbalMart 2013-01-23 15:50:06

+2

这是在VS Express 2012 for Web中为我工作的唯一解决方案。另外,在创建解决方案配置后,我才开始出现此错误,并将.mvcBuildViews设置为true,将其设置为.csproj源中的PropertyGroup。 – 2013-08-10 16:29:42

+0

这是在VS 2015上为我工作的解决方案 – 2016-09-01 14:14:07

1

我加入到我的网站发布脚本。最后,从网站文件夹中删除obj文件夹。

+0

您可能有一些见解:http://stackoverflow.com/questions/6986738/error-allowdefinition-machinetoapplication-beyond-application-level – ekkis 2011-08-08 18:26:29

0

提示1:清洁&然后重建。

提示2:刚刚关闭VS并再次打开。

提示3:下载的项目可能在另一个子文件夹内...打开有.net文件的文件夹。

C:/ demo1的/演示/ (所有文件)

你应该从VS ...不是demo1的开启公测。

8

最近的web.config更改可能位于错误的web.config文件中。

A <machineKey...>财产已被添加到Views/web.config。无论有多少清理和重建,错误依然存在。解决方法是将该属性移动到根目录/web.config

+0

我们不小心复制了父Web .config进入/ Views文件夹。将视图文件夹的原始小得多的版本放在那里,网站再次工作。 – Grandizer 2016-10-03 19:05:13

95

我刚刚遇到了这个“喜悦”。它似乎是在我以发布模式发布Web应用程序之后呈现的。

始终如一地避开,我已经找到了问题的唯一方法是按照这个清单:

  1. ,而您的解决方案干净的解决方案是在释放模式配置。
  2. 干净的解决方案,同时您的解决方案在调试模式下配置。
  3. 在调试模式下配置您的解决方案时进行构建。
+9

只为我工作的答案。 – 2013-02-19 17:05:06

+18

只有答案也适用于我。在此之后,我还有很多其他的错误在等着我,但他们没有关系。我通过将'MvcBuildViews'设置为'true'来到了这里。 – Benjamin 2013-04-01 13:42:51

+0

+1顺便说一句:我认为这为我工作的原因是我最近的版本是**调试**。我打开了解决方案,做了一个错误修复,并试图在R ** Release **模式下构建。在** Release **中清理不起作用,但在** Debug **中清理。 (可能是2的组合是需要的,即清除任何**旧的参考dll,无论是** Debug **还是** Release **)。 – 2013-07-19 14:34:16

1

如果在项目文件中启用了“true”,我就会更频繁地出现这个问题。

  1. 设置假

正如乔尼说:

  1. ,而您的解决方案干净的解决方案是在释放模式配置。
  2. 干净的解决方案,同时您的解决方案在调试模式下配置。
  3. 在调试模式下配置您的解决方案时进行构建。
2

它可能是版本问题,就像你下载的.Net框架2.0的项目,并希望打开它到VS2008,那么你将需要升级到最新版本和VS将创建该文件夹的备份同一根目录。您将得到答案here

+0

ranganh的答案[here](http://forums.asp.net/t/769696.aspx/1/10)提供了一些更多的细节。 – 2013-01-07 23:21:55

2

我在创建解决方案时使用Web部署项目创建解决方案时出现此错误。我通过删除构建Web部署项目的文件夹来解决该错误。此文件夹在WDP属性的“项目文件夹”属性中指定

16

当您尝试将项目作为网站打开时,会发生此错误。确定您是否创建了网站或项目的最简单方法是检查您的解决方案文件夹(即您保存代码的位置),并查看根目录中是否有* .sln文件,如果您确实如此,已经创建了一个项目。

刚刚添加时,我刚刚尝试打开一个项目时遇到了此错误,我通过从Visual Studio菜单中选择“文件”,“打开网站”创建了一个项目,而我应该选择“文件”改为“打开项目”。我尽快facepalmed因为我意识到:)

+0

我有这个相同的问题... – oliverdejohnson 2014-06-23 14:33:10

+0

这也是我的问题 – mgrenier 2014-08-25 18:00:16

+0

同样的问题,谢谢 – sathishkumar 2015-09-06 10:19:35

2

在我的情况下,

解决方案包含了6个项目,1主5个子目录。所有的子目录都有web.config。

在子目录内运行任何页面时,我得到相同的错误。

我删除了从web.config中这一行,

<authentication mode="Windows"/> 

为我工作。

+0

你删除了哪行? – 2013-01-07 23:19:53

+0

线路在那里,但没有显示由于我想一些缩进问题。我编辑并粘贴了代码块中的代码,现在显示。请检查并告诉我是否可以提供帮助。 – 2013-01-09 09:22:52

+0

谢谢,这证实了它对我来说也是失败的路线。我只有一个站点,所以我通过打开网站而不是项目来解决这个问题。 – 2013-01-10 16:38:30

1

我有一个项目,我不想成为一个Web应用程序,我希望它是一个文件夹。答案是完全删除web.config文件。它只属于应用程序的根。

2

我的问题是我不小心将我的web服务发布到全新安装的VS2010上的预先完成位置。

我已经发布到一个名为PreCompiledWeb的文件夹,并且存在web.config我怀疑它搞砸了。

我只是简单地加载了该文件夹,并刷新了项目。

当双击这个错误 - 它把我带到了错误的web.config文件,这让我失望。

3

清理项目 删除/ OBJ文件夹(可能使用发布和部署 - 存在一个bug)

+0

只为我工作的解决方案。通过设置 true得到了这里。 – Paul 2015-04-09 16:44:30

5

如果您遇到这个错误

It is an error to use a section registered as allowDefinition='MachineToApplication' beyond application level. This error can be caused by a virtual directory not being configured as an application in IIS

SOLUTION
我与VS 2012有同样的问题。 我解决了这个问题

  1. 卸载当前项目
  2. 编辑您的.csproj
  3. 找到这个<MvcBuildViews>false</MvcBuildViews>
  4. 而不是值更改为
  5. 再次装入你的项目,你不应该有任何更多的这个错误

如果你确实有一个解决方案,就是删除编译器生成的项目中的obj文件夹的内容。

+15

这很奇怪,将'MvcBuildViews'设置为'true'是我首先得到错误的方式。 – Benjamin 2013-04-01 12:42:44

+0

在将MvcBuildViews更改为true后,我也开始收到错误消息。通过将值更改回false,我摆脱了错误消息。 – 2013-07-17 14:08:48

+3

我在*发布和调试模式下都做了一个“干净的解决方案”,现在构建也可以使用' true' – 2013-07-17 14:14:58

1

如果在某些服务器上发布您的网站或应用程序时遇到此问题,我使用的简单解决方案是将包含文件的文件夹转换为Web应用程序。

+4

嗨,欢迎来到堆栈溢出!你能否扩大你的答案?你能解释如何将文件夹转换为Web应用程序?这会帮助其他人更好地理解你的答案。 – Jesse 2013-03-02 13:44:15

+1

在IIS管理器的右侧的连接窗格下,右键单击您创建的网站(或默认网站)下的目录,然后选择“转换为应用程序”。 – 2016-10-03 06:22:00

0

我试过上面的每个解决方案,但没有一个适用于我的问题。 (我确信这个问题有1000个解决方案)对于我的场景,我试图将我在测试中使用的WCF Web服务发布到生产环境中。

但是,我没有意识到在生产中我们只有HTTPS,这意味着我们将所有内容重定向到HTTPS。事实证明,我通过HTTP指向服务而不是HTTPS,从而导致错误。这种情况下的解决方案是简单地将地址协议更改为HTTPS而不是HTTP。

我希望帮助一些可怜的灵魂试图找出这个问题。

0

在我的情况下,我与GoDaddy托管这不是问题,但它增加了一层混淆。

我有一个根文件夹“WebServices”并将其设置为应用程序根目录。

但是该服务位于名为“GeoLocateSpecials”的子文件夹中,因为“WebServices”文件夹是许多服务的容器。

所以我不得不将GeoLocateSpecials设置为应用程序根目录,并且从那里运行得非常好。

希望能帮助其他人。

2

删除bin和obj文件夹。然后重建解决方案。

8

如果您有启用了视图构建的MVC项目,解决方案之一是在构建之前删除obj文件夹。添加到项目文件:

<Target Name="BeforeBuild"> 
    <!-- Remove obj folder --> 
    <RemoveDir Directories="$(BaseIntermediateOutputPath)" /> 
    <!-- Remove bin folder --> 
    <RemoveDir Directories="$(BaseOutputPath)" /> 
</Target> 

下面是文章:How to remove bin and/or obj folder before the build or deploy

2

显然有我的解决方案是两个web.config文件中。我使用的是MVC4,在Views下有另一个配置文件,我在错误的文件中进行了更改。固定在那里帮助了我。

但您可以随时更改global.asax文件中的默认重定向/路由。

1

在调试模式下发布我的项目后,我在VS 2013中遇到了同样的问题。该问题已通过删除OBJ /文件解决

1

我有一个网站项目。

在我的情况下,我已经将解决​​方案文件移到另一个路径并导致问题。我将它恢复到以前的位置,并且问题消失了。

0

对于任何一个仍在寻找,我的解决方案是删除bin和obj文件夹,并重新启动visual studio似乎修复它。

0

我有同样的问题时,我会发布的网站,如果我创建了这个网站我没有得到任何的问题,但同时发布了,我会得到这个可怕的错误:

"It is an error to use a section registered as allowDefinition='MachineToApplication' beyond application level. This error can be caused by a virtual directory not being configured as an application in IIS"

我什么都试过一个已声明在这篇文章中没有任何度假胜地,对我来说,只是创建一个新的发布配置文件,与我使用的发布配置文件完全一样,并且运行良好,不会因新配置文件而导致错误,老人。不知道有什么区别,但至少我可以发布我的MVC项目。

希望这可以帮助别人!

9

在Visual Studio 2013我有这个挣扎了一段时间,它是非常容易解决只需按照例外说什么“虚拟目录未配置为在IIS中的应用”

在我的情况,我栽WebServiceIIS website所以

  1. 我打开IIS管理器的网站
  2. 右单击文件夹WCF
  3. 点击Convert to Application
  4. ,然后用Ok

WCF是背部和运行提交。

+0

谢谢!这是我的问题 – 2017-02-25 12:04:47

+0

当我将应用程序移至默认网站时遇到此问题。第3点做了解决我的问题的技巧。 – 2017-07-03 09:30:41

0

从项目文件夹中删除Crystal Reports备份文件后,它正在为我工​​作。

4

在我的情况下,在我发布项目到子目录后,问题出现只有。由于缺乏相关知识,我将web_publish子目录放在web_project目录中。

很明显,web_publish也包含该项目包含的相同Web.config。但是,web_project不知道在嵌套子目录中搜索Web.config时应避免使用我的web_publish。这样,Web.config被复制并出现错误。

解决的办法是将我的web_publish放在别的地方。

4

在我的情况下,有一个“备份”文件夹,其中包含整个网站的另一个副本。这意味着另一个web.config,所以构建失败,这个错误。我删除了“备份”文件夹,在Debug和Release版本上做了一个Clean解决方案,并且错误消失了。

+0

我有类似的情况,有人在磁盘上的网站根目录中创建了一个“已发布”子文件夹(这是一个旧的Web项目,其中一个没有解决方案文件),并且其中有一个Web.config。 当Visual Studio尝试构建它时发生错误,当然,没有任何数量的清除/删除“obj”文件夹等修复了这些错误。 我已经看到了这个错误的不少实例,它几乎总是一个重复的Web.config隐藏在某个地方......(非常差的错误消息!) – Detail 2016-10-14 13:20:24

0

在我们的案例中,我们将一个站点部署到跨越其他服务器复制的服务器上。在部署环境中的所有服务器上执行IISRESET。

0

我有同样的问题,因为新的全局Web.Config是自动创建的父文件夹。它是\网站\网站。

将全部文件从子文件夹移到父文件夹并删除子文件夹后,现在我只有一个Web.Config,问题已解决。

1

通过Visual Studio,我有published a WCF Service via FTP,到外部服务器。它在本地运行良好,并且发布到内部服务器时,但不发布到外部。解决的办法是到发布而不提供Site Path(换句话说,直接发布到虚拟目录的根目录)。

我不确定它为什么会有效,因为我已经尝试通过外部FTP客户端将文件移动到根目录 - 包括这里列出的所有其他尝试。也许这是发布配置文件的东西,就像是FabianVal。但在这一点上,我现在还没有测试的心情,因为在这个问题上浪费了所有的日子之后,我急着要加快速度。

相关问题