Web应用程序项目[...]配置为使用IIS。找不到Web服务器[...]。

时间:2012-06-04 22:43:50

标签: c# asp.net iis

我打开解决方案时,我的解决方案文件中有一个“不可用”的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 Enterprise Service Pack 1
  • IIS 7.5版

28 个答案:

答案 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>

enter image description here

答案 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)

这对我有用: - 使所有IIS网站仅指向localhost(全部未分配)

enter image description here

答案 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文件。 enter image description here

第2步:搜索IIS并从<UseIIS>True</UseIIS>修改为<UseIIS>False</UseIIS> enter image description here

步骤3 :右键单击“项目”以Reload the Project。成功重新加载后,右键单击“项目”,然后选择 Properties enter image description here

第4步:在属性 => 网络下找到项目URL 选项 enter image description here

第5步:将错误消息和“错误消息”上显示的 Project URL 更改为 IIS URL <IISURL>http://localhost:8086 </IISURL>文件中的 project.csproj 。然后点击创建虚拟目录全部保存 enter image description here enter image description here

步骤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”,“将服务器设置应用于所有用户”下的项目属性中控制设置的存储位置。

web project settings

启用此选项后,IIS设置将存储在CSPROJ中,禁用时将其存储在CSPROJ中。用户

答案 24 :(得分: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
    

    您终于可以看到此消息- Internet服务已成功重新启动

  5. 在计算机上打开IIS(如果未配置Follow this

    1. 转到站点并右键单击

    2. 添加网站

    3. 填充-站点名称,然后选择物理路径

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

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

    注意:您无法创建端口 80 。因为它使用了默认IIS页面

    1. 点击确定
  6. 具有管理员权限的人打开Visual Studio

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

您的问题可能会解决。

答案 25 :(得分:0)

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

答案 26 :(得分:0)

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

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

答案 27 :(得分:0)

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

它需要以 www。

作为前缀

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