我已经在ASP.Net中下载了在线项目 . 在运行应用程序时,我收到错误
在应用程序级别之外使用注册为allowDefinition ='MachineToApplication'的部分是错误的 . 此错误可能是由于未在IIS中将虚拟目录配置为应用程序引起的 .
我应该在web.config或其他地方进行哪些更改才能使其工作?
最近的web.config更改可能在错误的web.config文件中 .
已将 <machineKey...> 属性添加到 Views/web.config . 无论有多少次清理和重建,错误仍然存在 . 修复是将属性移动到根 /web.config .
<machineKey...>
如果您有启用了视图构建的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
我刚刚遇到了这个“喜悦” . 在我以发布模式发布Web应用程序之后,它似乎就出现了 .
始终绕过我发现的问题的唯一方法是遵循此清单:
在解决方案配置为发布模式时清洁解决方案 .
在解决方案配置为调试模式的同时清洁解决方案 .
在解决方案配置为调试模式时构建 .
刚碰到this post,这发生在我身上 .只是 Clean 项目和错误消失了 . (必须是VS2010错误)
Clean
我在构建我的网站的第二个版本时遇到了这个问题 . 当我第一次构建它时,它没有发生 .
我刚刚删除了bin和obj文件夹,运行一个Clean Solution并再次构建它,这次没有任何问题 .
没有 . 您需要将您放置网站的目录设置为web application within IIS .
当您尝试将项目作为网站打开时,会发生此错误 . 确定您是否已创建网站或项目的最简单方法是检查您的解决方案文件夹(即保存代码的位置),看看根目录中是否有* .sln文件,如果您这样做,那么'我创建了一个项目 .
只是添加,我刚刚尝试通过从Visual Studio菜单中选择“文件”,“打开网站”来打开我创建的项目时遇到此错误,而我应该选择“文件”,“打开项目”代替 . 我意识到,我一脸瘫痪:)
在Visual Studio 2013中,我一直在努力解决这个问题并且很容易解决,只需遵循例外情况 "virtual directory not being configured as an application in IIS"
在我的情况下,我在 IIS website 内种植了 WebService
IIS website
WebService
我在IIS管理器中打开了网站
右键单击WCF文件夹
点击 Convert to Application
Convert to Application
然后提交 Ok
Ok
WCF恢复运行 .
该错误表明您使用的代码期望在IIS上设置虚拟目录 .
查找文档并添加所需的虚拟目录 . 它应该是一个包含 web.config 的目录(不是根目录) .
web.config
如果你遇到过这个错误
在应用程序级别之外使用注册为allowDefinition ='MachineToApplication'的部分是错误的 . 此错误可能是由于未在IIS中将虚拟目录配置为应用程序引起的
SOLUTION我和VS 2012有同样的问题 . 我解决了这个问题
卸载当前项目
编辑你的.csproj
找到这个 <MvcBuildViews>false</MvcBuildViews>
<MvcBuildViews>false</MvcBuildViews>
而不是 false 将值更改为 true
再次加载您的项目,您不应再有此错误
如果你有,那么一个解决方案就是删除编译器生成的项目中obj文件夹的内容 .
在我的情况下,问题出现在我将项目发布到子目录之后 . 由于我缺乏知识,我将 web_publish 子目录放在 web_project 目录中 .
web_publish
web_project
很明显, web_publish 也包含项目包含的相同 Web.config . 但是,在嵌套子目录中搜索 Web.config 时, web_project 不知道应该避免使用 web_publish . 这样, Web.config 被复制并出现错误 .
Web.config
解决方案是将我的 web_publish 放在其他地方 .
在我的情况下,有一个"Backup"文件夹,其中包含整个网站的另一个副本 . 这意味着另一个 web.config ,因此构建失败并出现此错误 . 我删除了"Backup"文件夹,在Debug和Release版本上做了一个Clean解决方案,错误消失了 .
就我而言,
解决方案包含6个项目,1个主目录和5个子目录 . 所有子目录都有web.config .
在子目录中运行任何页面时,我遇到了同样的错误 .
我从web.config中删除了这一行,
<authentication mode="Windows"/>
这对我有用 .
清理项目删除/ obj文件夹(可能使用发布和部署? - 其中有一个错误)
我的问题是我在新安装的VS2010上意外地将我的网络服务发布到预先完成的位置 .
我已经发布了一个名为 PreCompiledWeb 的文件夹,并且我怀疑web.config的存在搞砸了 .
我只是简单地修改了文件夹,并刷新了项目 .
当双击此错误时 - 它将我带到了错误的web.config文件,这让我感到惊讶 .
它可能是你下载.Net framework 2.0项目的版本问题,想要打开VS2008,然后你需要升级到最新版本,VS将在同一根目录下创建该文件夹的备份 . 你将得到答案here .
在使用在我的解决方案中创建的Web部署项目构建解决方案时出现此错误 . 我通过删除构建Web部署项目的文件夹来解决该错误 . 此文件夹在WDP属性的“项目文件夹”属性中指定
删除bin和obj文件夹 . 然后重建解决方案 .
显然我的解决方案中有两个web.config文件 . 我正在使用MVC4,在Views下有另一个配置文件,我正在更改错误的文件 . 修复了帮助我 .
但您始终可以更改global.asax文件中的默认重定向/路由 .
您可能在项目文件夹中有一个子asp.net项目文件夹,该文件夹未配置为虚拟目录 . 设置项目以在IIS中运行 .
我添加到我的网站发布脚本 . 最后,从您的网站文件夹中删除obj文件夹 .
如果在项目文件中启用“true”,我会更频繁地解决此问题 .
正如强尼所说:
我有一个项目,我不想成为一个Web应用程序,我希望它是一个文件夹 . 答案是完全删除web.config文件 . 它只属于应用程序的根目录 .
如果您在某些服务器上发布网站或应用程序时遇到此问题,我使用的简单解决方案是将包含文件的文件夹转换为Web应用程序 .
在调试模式下发布项目后,我在VS 2013中遇到了同样的问题 . 通过删除obj /文件解决了这个问题
我有一个网站项目 .
在我的情况下,我已将解决方案文件移动到另一个路径,这导致问题 . 我把它恢复到以前的位置,问题就出来了 .
对于任何仍在寻找的人,我的解决方案是删除bin和obj文件夹并重新启动visual studio似乎修复它 .
通过Visual Studio,我有published a WCF Service via FTP,到外部服务器 . 它在本地工作正常,并且在发布到内部服务器时,但不发布到外部服务器 . 解决方案是 publish without providing a Site Path (换句话说,直接发布到虚拟目录的根目录) .
Site Path
我不确定它为什么会起作用,因为我已经尝试通过外部FTP客户端将文件移动到根目录 - 在许多其他尝试中,包括此处列出的所有内容 . 也许它与发布配置文件有关,就像FabianVal一样 . 但是,在这个问题浪费了所有的日子之后,我急着赶快行动 .
提示1:清洁然后重建 .
提示2:关闭VS并再次打开 .
提示3:下载的项目可能在另一个子文件夹中...打开包含.net文件的文件夹 .
c:/ demo1 / demo /(所有文件)
你应该从vs ...而不是demo1打开demo .
我尝试了上面的每个解决方案,但没有一个解决我的问题 . (我确信这个问题有1000个解决方案)对于我的场景,我试图将我在测试中使用的WCF Web服务发布到 生产环境 中 .
但是,我没有意识到在 生产环境 中我们只是HTTPS,这意味着我们将所有内容重定向到HTTPS . 事实证明,我指的是通过HTTP而不是HTTPS进行服务,从而导致错误 . 此方案中的解决方案是简单地将地址协议更改为HTTPS而不是HTTP .
我希望能帮助一些贫穷的灵魂试图弄清楚这个问题 .
30 回答
最近的web.config更改可能在错误的web.config文件中 .
已将
<machineKey...>
属性添加到 Views/web.config . 无论有多少次清理和重建,错误仍然存在 . 修复是将属性移动到根 /web.config .如果您有启用了视图构建的MVC项目,其中一个解决方案是在构建之前删除obj文件夹 . 添加到项目文件:
这是文章:How to remove bin and/or obj folder before the build or deploy
我刚刚遇到了这个“喜悦” . 在我以发布模式发布Web应用程序之后,它似乎就出现了 .
始终绕过我发现的问题的唯一方法是遵循此清单:
在解决方案配置为发布模式时清洁解决方案 .
在解决方案配置为调试模式的同时清洁解决方案 .
在解决方案配置为调试模式时构建 .
刚碰到this post,这发生在我身上 .
只是
Clean
项目和错误消失了 . (必须是VS2010错误)我在构建我的网站的第二个版本时遇到了这个问题 . 当我第一次构建它时,它没有发生 .
我刚刚删除了bin和obj文件夹,运行一个Clean Solution并再次构建它,这次没有任何问题 .
没有 . 您需要将您放置网站的目录设置为web application within IIS .
当您尝试将项目作为网站打开时,会发生此错误 . 确定您是否已创建网站或项目的最简单方法是检查您的解决方案文件夹(即保存代码的位置),看看根目录中是否有* .sln文件,如果您这样做,那么'我创建了一个项目 .
只是添加,我刚刚尝试通过从Visual Studio菜单中选择“文件”,“打开网站”来打开我创建的项目时遇到此错误,而我应该选择“文件”,“打开项目”代替 . 我意识到,我一脸瘫痪:)
在Visual Studio 2013中,我一直在努力解决这个问题并且很容易解决,只需遵循例外情况 "virtual directory not being configured as an application in IIS"
在我的情况下,我在
IIS website
内种植了WebService
我在IIS管理器中打开了网站
右键单击WCF文件夹
点击
Convert to Application
然后提交
Ok
WCF恢复运行 .
该错误表明您使用的代码期望在IIS上设置虚拟目录 .
查找文档并添加所需的虚拟目录 . 它应该是一个包含
web.config
的目录(不是根目录) .如果你遇到过这个错误
SOLUTION
我和VS 2012有同样的问题 . 我解决了这个问题
卸载当前项目
编辑你的.csproj
找到这个
<MvcBuildViews>false</MvcBuildViews>
而不是 false 将值更改为 true
再次加载您的项目,您不应再有此错误
如果你有,那么一个解决方案就是删除编译器生成的项目中obj文件夹的内容 .
在我的情况下,问题出现在我将项目发布到子目录之后 . 由于我缺乏知识,我将
web_publish
子目录放在web_project
目录中 .很明显,
web_publish
也包含项目包含的相同Web.config
. 但是,在嵌套子目录中搜索Web.config
时,web_project
不知道应该避免使用web_publish
. 这样,Web.config
被复制并出现错误 .解决方案是将我的
web_publish
放在其他地方 .在我的情况下,有一个"Backup"文件夹,其中包含整个网站的另一个副本 . 这意味着另一个
web.config
,因此构建失败并出现此错误 . 我删除了"Backup"文件夹,在Debug和Release版本上做了一个Clean解决方案,错误消失了 .就我而言,
解决方案包含6个项目,1个主目录和5个子目录 . 所有子目录都有web.config .
在子目录中运行任何页面时,我遇到了同样的错误 .
我从web.config中删除了这一行,
这对我有用 .
清理项目删除/ obj文件夹(可能使用发布和部署? - 其中有一个错误)
我的问题是我在新安装的VS2010上意外地将我的网络服务发布到预先完成的位置 .
我已经发布了一个名为 PreCompiledWeb 的文件夹,并且我怀疑web.config的存在搞砸了 .
我只是简单地修改了文件夹,并刷新了项目 .
当双击此错误时 - 它将我带到了错误的web.config文件,这让我感到惊讶 .
它可能是你下载.Net framework 2.0项目的版本问题,想要打开VS2008,然后你需要升级到最新版本,VS将在同一根目录下创建该文件夹的备份 . 你将得到答案here .
在使用在我的解决方案中创建的Web部署项目构建解决方案时出现此错误 . 我通过删除构建Web部署项目的文件夹来解决该错误 . 此文件夹在WDP属性的“项目文件夹”属性中指定
删除bin和obj文件夹 . 然后重建解决方案 .
显然我的解决方案中有两个web.config文件 . 我正在使用MVC4,在Views下有另一个配置文件,我正在更改错误的文件 . 修复了帮助我 .
但您始终可以更改global.asax文件中的默认重定向/路由 .
您可能在项目文件夹中有一个子asp.net项目文件夹,该文件夹未配置为虚拟目录 . 设置项目以在IIS中运行 .
我添加到我的网站发布脚本 . 最后,从您的网站文件夹中删除obj文件夹 .
如果在项目文件中启用“true”,我会更频繁地解决此问题 .
正如强尼所说:
在解决方案配置为发布模式时清洁解决方案 .
在解决方案配置为调试模式的同时清洁解决方案 .
在解决方案配置为调试模式时构建 .
我有一个项目,我不想成为一个Web应用程序,我希望它是一个文件夹 . 答案是完全删除web.config文件 . 它只属于应用程序的根目录 .
如果您在某些服务器上发布网站或应用程序时遇到此问题,我使用的简单解决方案是将包含文件的文件夹转换为Web应用程序 .
在调试模式下发布项目后,我在VS 2013中遇到了同样的问题 . 通过删除obj /文件解决了这个问题
我有一个网站项目 .
在我的情况下,我已将解决方案文件移动到另一个路径,这导致问题 . 我把它恢复到以前的位置,问题就出来了 .
对于任何仍在寻找的人,我的解决方案是删除bin和obj文件夹并重新启动visual studio似乎修复它 .
通过Visual Studio,我有published a WCF Service via FTP,到外部服务器 . 它在本地工作正常,并且在发布到内部服务器时,但不发布到外部服务器 . 解决方案是 publish without providing a
Site Path
(换句话说,直接发布到虚拟目录的根目录) .我不确定它为什么会起作用,因为我已经尝试通过外部FTP客户端将文件移动到根目录 - 在许多其他尝试中,包括此处列出的所有内容 . 也许它与发布配置文件有关,就像FabianVal一样 . 但是,在这个问题浪费了所有的日子之后,我急着赶快行动 .
提示1:清洁然后重建 .
提示2:关闭VS并再次打开 .
提示3:下载的项目可能在另一个子文件夹中...打开包含.net文件的文件夹 .
c:/ demo1 / demo /(所有文件)
你应该从vs ...而不是demo1打开demo .
我尝试了上面的每个解决方案,但没有一个解决我的问题 . (我确信这个问题有1000个解决方案)对于我的场景,我试图将我在测试中使用的WCF Web服务发布到 生产环境 中 .
但是,我没有意识到在 生产环境 中我们只是HTTPS,这意味着我们将所有内容重定向到HTTPS . 事实证明,我指的是通过HTTP而不是HTTPS进行服务,从而导致错误 . 此方案中的解决方案是简单地将地址协议更改为HTTPS而不是HTTP .
我希望能帮助一些贫穷的灵魂试图弄清楚这个问题 .