当我打开解决方案时,我的解决方案文件中有一个“不可用”的Web项目 . 当我右键单击Web项目并重新加载项目时,我收到以下错误:
The Web Application Project mycompany.myapp.mywebproject is configured to use IIS. The Web Server 'http://localhost/MyWebApp could not be found.
我没有为此Web应用程序手动设置虚拟目录 .
每个同事,Visual Studio应该提示我创建虚拟目录,但我没有得到提示 .
我在开发机器上安装IIS之前安装了VS2010 .
这是我的开发机器设置:
-
Windows 7企业版
-
Service Pack 1
-
64位操作系统
-
Visual Studio 2010企业服务包1
-
IIS 7.5版
24 回答
编辑.csproj或vbproj文件 . 查找并替换这些条目
尝试使用管理员权限打开Visual Studio . 就我而言,它允许访问IIS站点并使此错误消失 . 然后我能够切换项目以使用似乎不需要管理员权限的IIS Express .
你不会相信,
start
visual studio as Administrator从消息中可以明显看出来
无法找到,因为可能
it has no privileges to see it
所以
restart
视觉工作室为 Administrator这对我有用: -
Make all your IIS websites point to localhost(All Unassigned) only
您可以加载项目而不将属性UseIIS的值设置为true . 只需按照以下步骤操作:
在mywebproject.csproj文件中 -
删除标记<IISUrl> http://localhost/MyWebApp/ </ IISUrl>并保存文件 . 应用程序将自动为其分配默认端口 .
对于DNN用户,我的问题是我需要在端口80处对dnndev.me进行绑定 . 我有多个安装在不同的端口上运行,并且VS要求特定的Url存在于端口80上(不像我的86那样) .
我通过从以下链接下载后重新安装IIS Express来修复此问题:
https://www.microsoft.com/en-us/download/confirmation.aspx?id=48264
发生这种情况时,最简单的解决方案是手动创建虚拟目录 .
首先,您需要确保安装了正确版本的ASP.Net并且已经安装了IIS扩展 .
要执行此操作,请转到c:\(windows)\ microsoft.net \(dotnetver)\中的相关.net版本文件夹(用括号中的文件夹替换PC上的正确文件夹)并运行此命令
下一次运行并完成,有时运行
从命令行有帮助,有时你不需要 .
接下来,转到IIS管理器并找到localhost网站,然后选择添加文件夹 . 浏览到项目中包含实际ASP.Net项目的文件夹并添加 .
最后,右键单击您添加的文件夹,您应该有一个选项“转换为应用程序”或“创建虚拟目录”或类似的东西 .
!!Make sure the Virtual directory has the name 'MyWebApp'!!
重新加载您的解决方案,它应该工作 .
请小心;这不是一个编程问题(不应该真的发布在这里),但我已经发布了这个指南,因为这是一个常见的问题,但我发布的建议是通用的;我列出的命令是正确的,但您在IIS中需要执行的步骤可能会有所不同,具体取决于您的版本和帐户权限 .
祝好运!
在我的情况下,我想从http切换到https,所以我从IIS中删除了http . 在我的.csproj.user文件中发现我仍然有:
所以我改成了:
检查是否已安装IIS Express . 如果缺少IIS Express,Visual Studio可能会丢弃设置
<UseIISExpress>false</UseIISExpress>
并仍然查找快速 .在我的情况下,此问题是由IIS绑定损坏引起的 . 具体来说,我的'http'绑定已被删除 . 重新创建它修复了问题 .
由于接受的答案需要IIS管理器,并且IIS Express没有IIS管理器或任何UI,因此这里是IIS Express用户的解决方案(也应该适用于其他所有人):
当您打开Visual Studio并收到错误消息时,右键单击项目解决方案资源管理器并选择“编辑 .csproj”
在项目文件中,更改以下行:
<UseIIS>True</UseIIS>
至
<UseIIS>False</UseIIS>
保存文件 .
现在重新加载您的项目 .
完成 .
然后,您就可以打开您的项目了 . 如果此时您想使用IIS,只需转到项目属性,单击“Web”选项卡,然后选择使用IIS的选项 . 那里有“创建虚拟目录”按钮 . 它可能会告诉您需要以管理员身份运行Visual Studio来创建该目录,如果需要,请执行此操作 .
在我的情况下,我能够在离线模式下打开解决方案,只需运行命令:
如果您通过TFS连接,请打开project.csproj.user文件并检查
并将其更改为true .
对我来说,我不得不从.csproj文件中删除这两行
我尝试只删除第一个,但这还不够 .
在我的情况下,引用的URL在csproj文件不正确 .
它需要以www为前缀 .
我做了更改,保存文件和项目加载正常 .
打开项目文件夹并删除 .csproj.user ,然后在Visual Studio上重新加载项目 .
在我的情况下,请确保您有一个“默认”网站
当我尝试从.csproj文件中打开一个项目时,就会发生这种情况,但是我通过从VS打开项目来克服它:
File> Open> Web Site
并选择包含我的项目的目录 .
当.csproj文件中的
<ProjectTypeGuids>
元素包含单元测试项目GUID:{3AC096D0-A1C2-E12C-1390-A8335801FDAB}
时,我遇到了这个问题 .删除它使项目加载没有问题 .
此解决方案适用于我 . 右键单击项目并选择编辑并找到以下代码,如下图所示 .
要么
我也有这个错误 . 我认为一切都设置正确,但我发现有一件事丢失了:我用于我的项目的主机名称(尚未)可解析 .
由于我的应用程序从主机名确定当前客户端的名称,因此我使用了主机名
clientname.mysuperapp.local
进行开发 . 当我将开发主机名添加到我的hosts
文件时,该项目可以再次加载 . 显然,我还是不得不这样做,但我没想到VS在加载项目之前会检查主机名 .对于那里的Win8用户,如果你按照接受的答案中的步骤,控制台会向你发出一条消息,说“你不能使用命令行来执行这个命令”(释义) . 而是通过控制面板(或Windows R> appwiz.cpl)访问“程序和功能”,单击“打开或关闭Windows功能”,并确保安装了以下内容:
这将检查一堆其他选项 . 一旦我安装了这些功能,并使用提升的权限运行VS2012,我就能够成功启动我的应用程序 .
在我的例子中,IIS中的“默认网站”没有端口80上的localhost绑定 . 对于.csproj文件中的任何值,您应该有一个绑定 .