当我打开解决方案时,我的解决方案文件中有一个“不可用”的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版


当前回答

我也犯了这个错误。我以为一切设置都是正确的,但我发现有一件事是缺失的:我用于项目的主机名(还)无法解析。

由于我的应用程序从主机名确定当前客户端的名称,我使用了一个主机名,如clientname.mysuperapp.local进行开发。当我将开发主机名添加到hosts文件时,该项目又可以加载了。显然,我必须这样做,但我没有想到VS在加载项目之前检查主机名。

其他回答

你不会相信,以管理员身份启动visual studio

从信息中可以明显看出

无法找到Web服务器“http://localhost/MyWebApp”。

无法找到,因为可能它没有看到它的特权

所以只要重新启动visual studio作为管理员

在我的情况下,我想从http切换到https,所以我已经从IIS删除了http。在我的。csproj。用户文件发现我仍然有:

<IISUrl>http://localhost/</IISUrl>

所以我把它改成:

<IISUrl>https://localhost/</IISUrl>

当这种情况发生时,最简单的解决方案是手动创建虚拟目录。

首先,您需要确保拥有正确的ASP版本。Net安装,并且您已经安装了IIS扩展。

要做到这一点,请转到C:\(Windows)\Microsoft.NET\Framework\(dotnetver)\的相关.net版本的文件夹 (将括号中的文件夹替换为PC上正确的文件夹)并运行此命令

aspnet_regiis.exe -i

接下来,一旦运行和完成,有时运行

iisreset

从命令行可以帮助,有时您不需要这样做。

接下来,进入IIS管理器,找到本地主机网站并选择添加文件夹。 浏览到项目中包含实际ASP. exe的文件夹。Net项目并添加它。

最后,右键单击你添加的文件夹,你应该有一个选项,说“转换为应用程序”或“创建虚拟目录”或类似的东西。

!!确保虚拟目录名称为“MyWebApp”!!

重新加载解决方案,它应该可以工作。

请小心;这不是一个编程问题(也不应该在这里发布),但我发布了这个指导,因为这是一个常见的问题,但我发布的建议是通用的;我列出的命令是正确的,但是你需要在IIS中执行的步骤可能会有所不同,这取决于你的版本和你的帐户权限。

好运!

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

这个解决方案对我来说很有效:右键单击项目并选择编辑并找到如下图所示的以下代码。

将<UseIIS>True</UseIIS>修改为<UseIIS>False</UseIIS>

OR

更改<IISUrl>http://example.com/</IISUrl> < lisurl >http://localhost/</ lisurl >