当我打开解决方案时,我的解决方案文件中有一个“不可用”的web项目。当我右键单击web项目并重新加载项目时,我得到以下错误:

Web应用程序项目mycompany.myapp.mywebproject已配置为使用IIS。无法找到Web服务器http://localhost/MyWebApp。

我还没有为这个web应用程序手动设置虚拟目录。

每个同事,Visual Studio应该提示我创建虚拟目录,但我没有得到提示。

在我的开发机器上安装IIS之前,我安装了VS2010。

这是我的开发机器设置:

Windows 7企业版 服务包1 64位操作系统 Visual Studio 2010企业服务包 IIS 7.5版


当前回答

对于我的项目,我必须从.csproj文件中删除这两行

<ProjectGuid>{3AA499DF-4A65-43B7-8965-D08A4C811834}</ProjectGuid>
<ProjectTypeGuids>{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>

我试着只删除第一个,但这还不够。

编辑:正如许多用户指出的那样,这可能会改变你的项目类型或搅乱你的源代码控制程序。我不能调查这些问题,因为这是学校的项目,我已经没有了。 尝试时请小心。至少要把你删除的内容复制一份。

其他回答

遵循这个完整的解决方案一步一步。这在VS 2017中很适用。

Open Command prompt in administrator mode Open File explorer and got to .NET Framework folder Eg:C:\Windows\Microsoft.NET\Framework\v4.0.30319 v4.0.30319 this is my .NET folder. you want to select your relevant folder. in CMD - Go to .NET folder path cd C:\Windows\Microsoft.NET\Framework\v4.0.30319 Execute below command in CMD aspnet_regiis.exe -i You can see this message finally - Finished installing ASP.NET (4.0.30319.0) iisreset You can see this message finally - Internet services successfully restarted Open IIS in your computer (if not config Follow this) Go to Site and right click Add WebSite Fill - Site name and select physical path Then type port number (you can find port number in .csproj file and port number must equal with (IISUrl) EG : <IISUrl>http://localhost:15724/</IISUrl> my port is 15724 Note : you cannot create port 80 number. because it used default IIS page Click Ok Open visual studio with administrator permission Then right click and reload your project

你的问题可能会解决。

由于接受的答案需要IIS管理器,而IIS Express没有IIS管理器或任何UI,下面是为您的IIS Express用户提供的解决方案(也应该适用于其他人):

当您打开Visual Studio并得到错误消息时,右键单击项目解决方案资源管理器并选择“Edit {ProjectName}.csproj”

在项目文件中,修改以下行: 真正< UseIIS > < / UseIIS > 来 假< / UseIIS < UseIIS > > 保存文件。

现在重新加载项目。 完成了。

然后您就可以打开您的项目了。如果此时,您想使用IIS,只需转到项目属性,单击“Web”选项卡,并选择使用IIS的选项。这里有一个“创建虚拟目录”的按钮。它可能会告诉您需要以管理员身份运行Visual Studio来创建该目录,因此如果需要的话就这样做。

这可能会在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中。用户

在我的情况下,我能够在离线模式下打开解决方案,只需运行命令:

iisreset

我通过从下面的链接下载后重新安装IIS Express来解决这个问题:

https://www.microsoft.com/en-us/download/confirmation.aspx?id=48264