我打开解决方案时,我的解决方案文件中有一个“不可用”的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。
这是我的开发机器设置:
答案 0 :(得分:463)
由于接受的答案需要IIS管理器,并且IIS Express没有IIS管理器或任何UI,因此这里是IIS Express用户的解决方案(也应该适用于其他所有人):
当您打开Visual Studio并收到错误消息时,右键单击项目Solution Explorer并选择“Edit {ProjectName} .csproj”
在项目文件中,更改以下行:
<UseIIS>True</UseIIS>
到
<UseIIS>False</UseIIS>
保存文件。
现在重新加载您的项目。
完成。
然后您就可以打开您的项目了。如果此时您想使用IIS,只需转到项目属性,单击“Web”选项卡,然后选择使用IIS的选项。那里有“创建虚拟目录”按钮。它可能会告诉您需要以管理员身份运行Visual Studio来创建该目录,如果需要,请执行此操作。
答案 1 :(得分:198)
打开项目文件夹并删除 {Project} .csproj.user ,然后在Visual Studio上重新加载项目。
答案 2 :(得分:79)
发生这种情况时,最简单的解决方案是手动创建虚拟目录。
首先,您需要确保安装了正确版本的ASP.Net并安装了IIS扩展。
要执行此操作,请转到c:\(windows)\ microsoft.net \(dotnetver)中相关的.net版本文件夹\ (用括号中的文件夹替换PC上的正确文件夹)并运行此命令
aspnet_regiis.exe -i
接下来一旦运行并完成,有时会运行
iisreset
从命令行有帮助,有时你不需要。
接下来,转到IIS管理器并找到localhost网站,然后选择添加文件夹。 浏览到项目中包含实际ASP.Net项目的文件夹并添加它。
最后,右键单击您添加的文件夹,您应该有一个选项“转换为应用程序”或“创建虚拟目录”或类似的东西。
!!确保虚拟目录的名称为“MyWebApp”!!
重新加载您的解决方案,它应该可以正常工作。
请小心;这不是一个编程问题(不应该真的发布在这里)但我已经发布了这个指南,因为这是一个常见的问题,但我发布的建议是通用的;我列出的命令是正确的,但您在IIS中需要执行的步骤可能会有所不同,具体取决于您的版本和帐户权限。
祝你好运!答案 3 :(得分:23)
编辑.csproj或vbproj文件。查找并替换这些条目
<UseIIS>true</UseIIS> by <UseIIS>false</UseIIS>
<UseIISExpress>true</UseIISExpress> by <UseIISExpress>false</UseIISExpress>
答案 4 :(得分:21)
此解决方案适用于我。请单击项目并选择编辑并找到以下代码,如下图所示。
change the <UseIIS>True</UseIIS> to <UseIIS>False</UseIIS>
OR
change the <IISUrl>http://example.com/</IISUrl> to <IISUrl>http://localhost/</IISUrl>
答案 5 :(得分:20)
对我来说,我不得不从.csproj文件中删除这两行
<ProjectGuid>{3AA499DF-4A65-43B7-8965-D08A4C811834}</ProjectGuid>
<ProjectTypeGuids>{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>
我尝试只删除第一个,但它还不够。
编辑:正如许多用户所指出的,这可能会改变您的项目类型或使用源代码管理程序。我无法调查这些问题,因为这是我不再拥有的学校项目。 尝试这个时请小心。至少复制一下你删除的内容。答案 6 :(得分:10)
在我的情况下,此问题是由IIS绑定损坏引起的。具体来说,我的'http'绑定已被删除。重新创建它解决了这个问题。
答案 7 :(得分:5)
答案 8 :(得分:5)
尝试以管理员权限打开Visual Studio。就我而言,它允许访问IIS站点并使此错误消失。然后我能够将项目切换为使用似乎不需要管理员权限的IIS Express。
答案 9 :(得分:4)
您不会相信,start
visual studio为管理员
从消息中可以明显看出
找不到无法找到网络服务器“http://localhost/MyWebApp”。
,因为可能it has no privileges to see it
所以只需restart
visual studio作为管理员
答案 10 :(得分:4)
您可以在不将属性UseIIS的值设置为true的情况下加载项目。 只需按照以下步骤操作:
在mywebproject.csproj文件中 -
删除标签&lt; IISUrl&GT; http://localhost/MyWebApp/&LT; / IISUrl&GT;并保存文件。 应用程序将自动为其分配默认端口。
答案 11 :(得分:3)
在我的情况下,我想从http切换到https,所以我从IIS中删除了http。在我的.csproj.user文件中发现我还有:
<IISUrl>http://localhost/</IISUrl>
所以我把它改成了:
<IISUrl>https://localhost/</IISUrl>
答案 12 :(得分:3)
如果您通过TFS连接,请打开project.csproj.user文件并检查
<UseIISExpress>false</UseIISExpress>
并将其更改为true。
<UseIISExpress>true</UseIISExpress>
答案 13 :(得分:2)
当我尝试从.csproj文件中打开一个项目时,会发生这种情况,但是我通过从VS打开项目来克服它:
<强>文件&gt;开放&GT;网站
并选择包含我的项目的目录。
答案 14 :(得分:2)
对于那里的Win8用户,如果你按照接受的答案中的步骤操作,控制台会向你发出一条消息,说“你不能使用命令行来执行这个命令”(释义)。相反,访问程序&amp;通过控制面板(或Windows + R&gt; appwiz.cpl)的功能,单击“打开或关闭Windows功能”,并确保安装了以下内容:
Internet Information Services
> World Wide Web Services
> Application Development Features
> ASP.NET 4.5
这也将检查一堆其他选项。一旦我安装了这些功能,并使用提升的权限运行VS2012,我就能够成功启动我的应用程序。
答案 15 :(得分:2)
在我的情况下,我能够在离线模式下打开解决方案,只需运行命令:
iisreset
答案 16 :(得分:1)
在我的情况下,请确保您有一个“默认”网站
答案 17 :(得分:1)
检查是否已安装IIS Express。如果缺少IIS Express,Visual Studio可能会丢弃设置<UseIISExpress>false</UseIISExpress>
并仍然查找快速。
答案 18 :(得分:1)
在我的情况下,IIS中的“默认网站”没有端口80上的localhost绑定。 无论您在.csproj文件中的值是什么,都应该有一个绑定。
答案 19 :(得分:1)
我也有这个错误。我认为一切都设置正确,但我发现有一件事遗失了:我用于项目的主机名尚未解析。
由于我的应用程序从主机名确定了当前客户端的名称,因此我使用了clientname.mysuperapp.local
这样的主机名进行开发。当我将开发主机名添加到我的hosts
文件时,该项目再次可加载。显然,我还是不得不这样做,但我没想到VS在加载项目之前会检查主机名。
答案 20 :(得分:1)
我通过从以下链接下载后重新安装IIS Express来修复此问题:
https://www.microsoft.com/en-us/download/confirmation.aspx?id=48264
答案 21 :(得分:0)
原来我的 IIS 在 localhost:8181 上工作。必须配置 {Project}.csproj 文件。
<ProjectExtensions>
<VisualStudio>
<FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}">
<WebProjectProperties>
<UseIIS>True</UseIIS>
<AutoAssignPort>True</AutoAssignPort>
<DevelopmentServerPort>7386</DevelopmentServerPort>
<DevelopmentServerVPath>/</DevelopmentServerVPath>
<IISUrl>**http://localhost:8181/ProjectName**</IISUrl>
<NTLMAuthentication>False</NTLMAuthentication>
<UseCustomServer>False</UseCustomServer>
<CustomServerUrl>
</CustomServerUrl>
<SaveServerSettingsInUserFile>False</SaveServerSettingsInUserFile><EnableWcfTestClientForSVCDefaultValue>True</EnableWcfTestClientForSVCDefaultValue>
</WebProjectProperties>
</FlavorProperties>
</VisualStudio>
</ProjectExtensions>
答案 22 :(得分:0)
原因:IISURL
中的project.csproj
未正确反映在项目设置中,并且未创建virtual directory
。
解决方案:更改Project URL
以更正PORT
,并创建Virtual Directory
以使丢失的PORT
可用。
遵循以下步骤:
步骤1 :在项目文件上右键单击为Edit the project.csproj
文件。
第2步:搜索IIS
并从<UseIIS>True</UseIIS>
修改为<UseIIS>False</UseIIS>
步骤3 :右键单击“项目”以Reload the Project
。成功重新加载后,右键单击“项目”,然后选择 Properties
。
第5步:将错误消息和“错误消息”上显示的 Project URL 更改为 IIS URL 。 <IISURL>http://localhost:8086 </IISURL>
文件中的 project.csproj
。然后点击创建虚拟目录。 全部保存
步骤6 :重做步骤2 ,因此它不会影响远程代码库和服务器部署设置。
答案 23 :(得分:0)
这可能在2020年对某些人有所帮助。主要问题是CSPROJ文件中的IIS设置与计算机的配置不匹配。例如,如果您的Web应用程序项目指向localhost:12345,并且在该端口上的计算机上未设置虚拟目录,则会出现此错误。
使用VS2019,我遇到了同样的问题,CSProj文件中的IIS设置被忽略。原因是CSProj文件中名为“ SaveServerSettingsInUserFile”的新属性:
<ProjectExtensions>
<VisualStudio>
<FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}">
<WebProjectProperties>
<SaveServerSettingsInUserFile>True</SaveServerSettingsInUserFile>
</WebProjectProperties>
</FlavorProperties>
<UserProperties UseAjaxifiedTemplates="True" UseJQuerySupport="True" />
</VisualStudio>
</ProjectExtensions>
设置为TRUE时,IIS / Web服务器属性位于
.CSPROJ。相同项目名称的用户文件。
如果未将此文件签入源代码管理,则允许项目的单个用户使用自己的IIS设置。
您可以使用Visual Studio GUI在“ Web”,“将服务器设置应用于所有用户”下的项目属性中控制设置的存储位置。
启用此选项后,IIS设置将存储在CSPROJ中,禁用时将其存储在CSPROJ中。用户
答案 24 :(得分:0)
逐步完成此解决方案。在VS 2017中对我有效。
以管理员模式打开命令提示符
打开文件资源管理器,然后进入.NET Framework文件夹
Eg:C:\Windows\Microsoft.NET\Framework\v4.0.30319
v4.0.30319 ,这是我的.NET文件夹。您要选择相关文件夹。
在CMD中-转到.NET文件夹路径
cd C:\Windows\Microsoft.NET\Framework\v4.0.30319
在CMD中执行以下命令
aspnet_regiis.exe -i
您最终可以看到此消息-完成安装ASP.NET(4.0.30319.0)
iisreset
您终于可以看到此消息- Internet服务已成功重新启动
在计算机上打开IIS(如果未配置Follow this)
转到站点并右键单击
添加网站
填充-站点名称,然后选择物理路径
然后键入端口号(您可以在.csproj文件中找到端口号,并且端口号必须等于(IISUrl)
EG : <IISUrl>http://localhost:15724/</IISUrl> my port is 15724
注意:您无法创建端口 80 。因为它使用了默认IIS页面
具有管理员权限的人打开Visual Studio
然后右键单击并重新加载您的项目
您的问题可能会解决。
答案 25 :(得分:0)
对于DNN用户,我的问题是我需要在端口80处对dnndev.me进行绑定。我有多个安装在不同的端口上运行,VS要求特定的Url存在于端口80上(不像我的86那样)。
答案 26 :(得分:0)
当.csproj文件中的<ProjectTypeGuids>
元素包含单元测试项目GUID:{3AC096D0-A1C2-E12C-1390-A8335801FDAB}
时,我遇到了此问题。
删除它会使项目加载没有问题。
答案 27 :(得分:0)
就我而言, csproj 文件中引用的网址不正确。
它需要以 www。
作为前缀我做了更改,保存了文件并且项目加载正常。