309

当我打开解决方案时,我的解决方案文件中有一个“不可用”的 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 企业版
  • 服务包 1
  • 64位操作系统
  • Visual Studio 2010 企业服务包 1
  • IIS 7.5 版
4

28 回答 28

560

由于接受的答案需要 IIS 管理器,而 IIS Express 没有 IIS 管理器或任何 UI,因此这是适用于 IIS Express 用户的解决方案(也应该适用于其他所有人):

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

在项目文件中,更改以下行:
<UseIIS>True</UseIIS>

<UseIIS>False</UseIIS>
保存文件。

现在重新加载您的项目。
完毕。

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

于 2012-10-17T08:28:51.327 回答
248

打开项目文件夹并删除{Project}.csproj.user,然后在 Visual Studio 上重新加载项目。

于 2014-03-06T14:48:00.190 回答
87

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

首先,您需要确保安装了正确版本的 ASP.Net 并安装了 IIS 扩展。

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

aspnet_regiis.exe -i

下一次运行并完成,有时运行

iisreset

从命令行帮助,有时你不需要。

接下来,转到您的 IIS 管理器并找到您的 localhost 网站并选择添加文件夹。浏览到项目中包含实际 ASP.Net 项目的文件夹并添加它。

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

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

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

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

祝你好运!

于 2012-06-04T22:53:43.903 回答
42

该解决方案对我有用:右键单击项目并选择编辑并找到以下代码,如下图所示。

change the <UseIIS>True</UseIIS> to <UseIIS>False</UseIIS>

或者

change the <IISUrl>http://example.com/</IISUrl> to <IISUrl>http://localhost/</IISUrl>

csproj 截图

于 2015-07-31T13:32:03.073 回答
36

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

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

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

编辑:正如许多用户指出的那样,这可能会改变您的项目类型或弄乱您的源代码控制程序。我无法调查这些问题,因为这是我不再有的学校项目。尝试此操作时请小心。至少复制您删除的内容。

于 2017-01-22T15:05:53.813 回答
26

编辑 .csproj 或 vbproj 文件。查找并替换这些条目

<UseIIS>true</UseIIS> by <UseIIS>false</UseIIS>
<UseIISExpress>true</UseIISExpress> by <UseIISExpress>false</UseIISExpress>
于 2013-10-26T19:20:55.253 回答
10

就我而言,这个问题是由损坏的 IIS 绑定引起的。具体来说,我的“http”绑定已被删除。重新创建它解决了这个问题。

于 2012-11-14T15:06:18.963 回答
9

原因:项目设置中没有正确反映IISURL内部,并且没有创建。project.csprojvirtual directory

解决方案:将 更改Project URL为更正PORT并创建Virtual Directory以使缺少的PORT可用。


请按照以下步骤操作

步骤1:右键单击项目文件到Edit the project.csproj文件。 在此处输入图像描述

第 2 步:搜索IIS并修改 from<UseIIS>True</UseIIS><UseIIS>False</UseIIS> 在此处输入图像描述

第 3 步:右键单击 Project to Reload the Project。重新加载成功后,右键单击项目并选择Properties在此处输入图像描述

第 4 步:在Properties => Web下找到Project URL选项 在此处输入图像描述

第 5 步:将项目 URL更改为错误消息和源文件中指示的IIS URL 。然后单击创建虚拟目录保存全部<IISURL>http://localhost:8086 </IISURL>project.csproj 在此处输入图像描述 在此处输入图像描述

第 6 步:重做第 2 步,以免影响远程代码库和服务器部署设置。

于 2020-12-08T20:43:51.040 回答
8

这对我有用:-
让你所有的 IIS 网站只指向 localhost(All Unassigned)

在此处输入图像描述

于 2016-12-20T10:09:45.020 回答
6

尝试使用管理员权限打开 Visual Studio。就我而言,它允许访问 IIS 站点并使此错误消失。然后我可以将项目切换为使用似乎不需要管理员权限的 IIS Express。

于 2014-03-06T03:58:38.743 回答
5

如果您通过 TFS 连接,请打开您的 project.csproj.user 文件并检查

<UseIISExpress>false</UseIISExpress>

并将其更改为 true。

<UseIISExpress>true</UseIISExpress>
于 2017-04-13T03:18:10.917 回答
5

你不会相信, startVisual Studio 作为管理员

从消息中显而易见

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

找不到,因为可能it has no privileges to see it

所以只需restart将视觉工作室作为管理员

于 2016-10-25T08:38:42.863 回答
4

您可以在不将属性 UseIIS 的值设置为 true 的情况下加载项目。只需按照以下步骤操作:

在 mywebproject.csproj 文件中——

删除标签 <IISUrl> http://localhost/MyWebApp/ </IISUrl> 并保存文件。应用程序将自动为其分配默认端口。

于 2016-09-06T10:27:13.387 回答
3

就我而言,我想从 http 切换到 https,所以我从 IIS 中删除了 http。在我的 .csproj.user 文件中发现我仍然有:

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

所以我把它改成:

<IISUrl>https://localhost/</IISUrl>
于 2015-03-30T15:44:55.063 回答
2

对于那里的 Win8 用户,如果您按照已接受答案中的步骤操作,控制台会向您吐出一条消息,说“您不应使用命令行来执行此命令”(释义)。相反,通过控制面板(或 Windows + R > appwiz.cpl)访问程序和功能,单击“打开或关闭 Windows 功能”,并确保您已安装以下内容:

Internet Information Services
  > World Wide Web Services
    > Application Development Features
      > ASP.NET 4.5

这还将检查许多其他选项。一旦我安装了这些功能,并以提升的权限运行 VS2012,我就能够成功启动我的应用程序。

于 2013-12-23T19:49:41.260 回答
2

就我而言,我只需运行以下命令就可以在离线模式下打开解决方案:

iisreset
于 2012-12-13T12:27:05.277 回答
2

当我尝试从 .csproj 文件打开项目时,会发生这种情况,但我通过从 VS 打开项目来克服它:

文件> 打开> 网站

并选择包含我的项目的目录。

于 2016-06-13T11:24:35.220 回答
1

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

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

于 2013-10-09T09:14:58.037 回答
1

检查是否安装了 IIS Express。如果缺少 IIS Express,Visual Studio 可能会放弃该设置<UseIISExpress>false</UseIISExpress>并仍然查找该 express。

于 2014-03-27T15:33:16.740 回答
1

就我而言,请确保您有一个“默认”网站

于 2014-06-05T23:45:08.280 回答
1

在我的例子中,IIS 中的“默认网站”在端口 80 上没有 localhost 的绑定。无论 .csproj 文件中的值是什么,您都应该有一个绑定。

于 2016-12-06T06:38:41.883 回答
1

原来我的 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>
于 2021-07-12T09:26:26.517 回答
1

我通过从以下链接下载后重新安装 IIS Express 来解决此问题:

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

于 2017-09-14T03:25:18.583 回答
0

就我而言,csproj文件中引用的 url 不正确。

它需要以www 为前缀。

我进行了更改,保存了文件并且项目加载正常。

于 2014-11-27T12:02:22.893 回答
0

对于 DNN 用户,我的问题是我需要在 80 端口绑定 dnndev.me。我有多个在不同端口上运行的安装,并且 VS 要求该特定 Url 存在于端口 80(而不是像我的 86 那样)。

于 2016-08-22T15:22:56.847 回答
0

<ProjectTypeGuids>当.csproj 文件中的元素包含单元测试项目 GUID:时,我遇到了这个问题{3AC096D0-A1C2-E12C-1390-A8335801FDAB}

删除它使项目加载没有问题。

于 2016-03-29T16:58:35.870 回答
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.User 相同项​​目名称的文件。

这允许项目的各个用户拥有自己的 IIS 设置,前提是该文件未检入源代码管理。

您可以使用 Visual Studio GUI 在“Web”下的项目属性中控制设置的存储位置,“将服务器设置应用于所有用户”

网络项目设置

开启时,IIS 设置存储在 CSPROJ 中,关闭时,它们存储在 CSPROJ.User 中

于 2020-11-15T13:13:15.560 回答
0

一步一步地按照这个完成的解决方案。它在 VS 2017 中对我有用。

  1. 在管理员模式下打开命令提示符

  2. 打开文件资源管理器并进入 .NET Framework 文件夹

      Eg:C:\Windows\Microsoft.NET\Framework\v4.0.30319
    

    v4.0.30319这是我的 .NET 文件夹。你想选择你的相关文件夹。

  3. 在 CMD 中 - 转到 .NET 文件夹路径

    cd C:\Windows\Microsoft.NET\Framework\v4.0.30319
    
  4. 在 CMD 中执行以下命令

    aspnet_regiis.exe -i
    

    您终于可以看到这条消息 -完成安装 ASP.NET (4.0.30319.0)

    iisreset
    

    终于可以看到这条信息了——互联网服务成功重启

  5. 在您的计算机中打开 IIS(如果没有配置,请按照此操作)

    1. 转到站点并右键单击

    2. 添加网站

    3. 填写 -站点名称并选择物理路径

    4. 然后输入端口号(您可以在 .csproj 文件中找到端口号,并且端口号必须等于 (IISUrl)

    EG : <IISUrl>http://localhost:15724/</IISUrl> my port is 15724
    

    注意:您不能创建端口80号码。因为它使用了默认的 IIS 页面

    1. 点击确定
  6. 以管理员权限打开 Visual Studio

  7. 然后右键单击并重新加载您的项目

您的问题可能会得到解决。

于 2020-06-23T03:04:12.093 回答