错误:allowDefinition ='MachineToApplication'超出应用程序级别

我已经在ASP.Net下载了在线项目。 运行应用程序时,我得到一个错误

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

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

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

始终如一地解决我发现的问题的唯一方法是遵循以下清单:

  1. 清理解决scheme,同时您的解决schemeconfiguration为释放模式
  2. 清理解决scheme,同时您的解决schemeconfiguration为debugging模式
  3. 在debugging模式下configuration您的解决scheme时进行构build。

只是遇到这个职位 ,这发生在我身上。
只需Clean项目,错误消失。 (必须是VS2010的错误)

构build我的网站的第二个版本时,我刚刚有这个问题。 当我第一次build造它时没有发生。

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

没有。 您需要在IIS中设置您将该网站作为Web应用程序的目录。

当您尝试作为网站打开项目时,会发生此错误。 确定你是否创build了一个网站或一个项目的最简单的方法是检查你的解决scheme文件夹(例如,你保存的代码),看看你的根目录是否有* .sln文件,如果你这样做,已经创build了一个项目。

刚刚添加,我刚刚尝试打开一个项目时遇到了这个错误,我通过从Visual Studio菜单中select“文件”,“打开网站”创build了一个项目,而我应该select“文件”,“打开项目”代替。 我只要意识到我就会面面相觑:)

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

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

在Visual Studio 2013中,我苦苦挣扎了一段时间,要解决这个问题非常简单, 只需按照 “虚拟目录未configuration为IIS中的应用程序”

在我的情况下,我已经在IIS website内种植了WebService

  1. 我在IISpipe理器中打开了该网站
  2. 右键单击WCF文件夹
  3. 点击Convert to Application
  4. 然后用Ok提交

WCF回来并正在运行。

如果您的MVC项目已启用视图构build,解决scheme之一是在构build之前删除obj文件夹。 添加到项目文件:

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

这里是文章: 如何在构build或部署之前删除bin和/或obj文件夹

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

一个<machineKey...>属性已被添加到Views / web.config 。 无论有多less清理和重build,错误依然存在。 解决的办法是将该属性移动到根/web.config中

如果你遇到这个错误

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


我与VS 2012有同样的问题。我通过解决这个问题

  1. 卸载当前的项目
  2. 编辑你的.csproj
  3. find这个<MvcBuildViews>false</MvcBuildViews>
  4. 而不是错误的值更改为true
  5. 再次加载你的项目,你不应该再有这个错误

如果你有,那么一个解决scheme是删除由编译器生成的项目中的obj文件夹的内容。

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

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

解决的办法是把我的web_publish放在其他地方。

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

清理项目删除/ obj文件夹(可能使用发布和部署? – 有一个错误)

这可能是你下载.Net Framework 2.0的项目的版本问题,并想打开它到VS2008,那么你将需要升级到最新版本和VS将创build在同一根目录的文件夹的备份。您将在这里得到答案。

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

就我而言,

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

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

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

 <authentication mode="Windows"/> 

为我工作。

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

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

我只是简单地把文件夹encryption,然后刷新了这个项目。

当双击这个错误 – 它把我带到错误的web.config文件,这使我摆脱了。

删除bin和obj文件夹。 然后重build解决scheme。

显然,我的解决scheme中有两个web.config文件。 我正在使用MVC4和视图下有另一个configuration文件,我正在改变了错误的文件。 固定在那里帮助了我。

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

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

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

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

  1. 设置为false

正如Jonny所说:

  1. 清理解决scheme,同时您的解决schemeconfiguration为释放模式
  2. 清理解决scheme,同时您的解决schemeconfiguration为debugging模式
  3. 在debugging模式下configuration您的解决scheme时进行构build。

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

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

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

我有一个网站项目。

在我的情况下,我已经将解决​​scheme文件移动到另一个path,并导致问题。 我把它恢复到原来的位置,问题就出来了。

通过Visual Studio,我已经通过FTP发布了一个WCF服务到外部服务器。 它在本地运行良好,并发布到内部服务器,而不是外部。 解决scheme是发布时不提供 Site Path (换句话说,直接发布到虚拟目录的根目录)。

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

技巧1:清洁,然后重build。

提示2:closuresVS再次打开。

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

c:/ demo1 / demo /(所有文件)

你应该打开演示从VS …不demo1。

我尝试了上面的每一个解决scheme,但没有一个为我的问题工作。 (我确定有1000个解决scheme来解决这个问题)对于我的场景,我试图将我在testing中使用的WCF Web服务发布到生产环境中。

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

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

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

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

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

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

希望能帮助其他人。