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

Posted

技术标签:

【中文标题】Web 应用程序项目 [...] 配置为使用 IIS。找不到 Web 服务器 [...]。【英文标题】:The Web Application Project [...] is configured to use IIS. The Web server [...] could not be found. 【发布时间】:2012-06-09 00:07:35 【问题描述】:

我的解决方案文件中有一个 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 版

【问题讨论】:

【参考方案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>

【讨论】:

【参考方案2】:

原因project.csproj里面的IISURL没有正确反映在项目设置中,virtual directory没有创建。

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

按照以下步骤操作

第一步:在工程文件上右击Edit the project.csproj文件。

第二步:搜索IIS,将&lt;UseIIS&gt;True&lt;/UseIIS&gt;修改为&lt;UseIIS&gt;False&lt;/UseIIS&gt;

第 3 步:右键单击 Project 到 Reload the Project。 Reload成功后,右键Project,选择Properties

第 4 步:在 Properties 下找到 Project URL 选项 => Web

第 5 步:将 Project URL 更改为 IIS URL,在 Error Message&lt;IISURL&gt;http://localhost:8086 &lt;/IISURL&gt; 来自project.csproj 文件。然后单击创建虚拟目录全部保存

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

【讨论】:

【参考方案3】:

这可能对 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 中

【讨论】:

【参考方案4】:

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

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

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

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

【讨论】:

这个有效,这个应该被标记为答案。我按照 SO 中的建议尝试了许多解决方案,但除了这个之外,没有一个对我有用。 在尝试了以上所有建议之后,这才是真正适合我的建议。谢谢你,我的伙计! 这会更改为项目类型,因此它不再是 Web 应用程序了。 从 .csproj 文件中删除 不是一个好主意。要加载项目,仅删除 就足够了,这也是一个坏主意,因为它会更改项目类型,正如@Oram 提到的那样。如果您不想提交更改,这个答案很好,只需查看 VS 中的代码即可。 这解决了我在承包商开发的 Visual Studio 2010 解决方案中遇到的解决方案资源管理器加载错误,我将移至 2013 年。解决方案文件有 2 个项目;一个网络应用程序和一个网络服务。我无法加载任何一个,因此在我尝试打开解决方案文件后,解决方案资源管理器只显示了两个空文件夹。一旦我注释掉了建议的 ProjectGuid 和 ProjectTypeGuids 行,我就可以在解决方案资源管理器中看到这些项目的依赖关系。对我来说,这是一个低风险高回报的选择,因为我可以轻松撤消这些更改。谢谢!【参考方案5】:

按照这个完整的解决方案逐步完成。它在 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
    

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

    在您的计算机中打开 IIS(如果没有配置 Follow this)

      转到站点并右键单击

      添加网站

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

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

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

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

      点击确定

    管理员权限打开visual studio

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

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

【讨论】:

【参考方案6】:

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

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

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

aspnet_regiis.exe -i

下一个运行完成后,有时会运行

iisreset

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

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

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

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

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

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

祝你好运!

【讨论】:

我按照说明进行操作并收到以下错误。由于此错误,我删除了我的虚拟目录。无法添加类型为“add”且唯一键属性“name”设置为“Telerik_Web_UI_WebResource_axd”的重复集合条目 当您启动解决方案时,是什么导致了该错误,IIS 或 Visual Studio? 另外,检查你的新 asp.net 项目的 web.config,它有两个或多个对“Telerik.WebResource.axd”的引用,它只需要一个。 我确实检查了 web.config.. 当我删除了有问题的条目时,我收到了需要删除条目的错误消息。 即将针对新的错误消息发布一个单独的问题【参考方案7】:

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

change the &lt;UseIIS&gt;True&lt;/UseIIS&gt; to &lt;UseIIS&gt;False&lt;/UseIIS&gt;

change the &lt;IISUrl&gt;http://example.com/&lt;/IISUrl&gt; to &lt;IISUrl&gt;http://localhost/&lt;/IISUrl&gt;

【讨论】:

在 .NET Framework 4.5.2 项目中,我只需将 UseIIS 标志设置为 false。【参考方案8】:

我通过以下链接下载后重新安装 IIS Express 解决了这个问题:

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

【讨论】:

这没有提供问题的答案。一旦你有足够的reputation,你就可以comment on any post;相反,provide answers that don't require clarification from the asker。 - From Review @FluffyKitten 我遇到了与 OP 相同的错误,我尝试了所有其他答案,但除了重新安装 IIS Express 没有任何效果。所以我相信这是我对 OP 问题的回答。重新安装 IIS。 您的答案被标记为低质量,正在接受审核(请注意评论末尾的“来自审核”)。虽然它可能有效,但重新安装软件是最后的选择,当没有其他方法并且不是此 OP 问题的特定解决方案时。 如果它是在没有其他方法可行之后的最后选择——并且根据 Ajay2707 的说法,对于一些可怜的灵魂来说,其他任何答案都没有可能——那么我认为这个答案可能会有用。当它可能是唯一对某些人有用的东西时,你怎么能将答案指定为低质量?我支持你Ajay2707。感谢您抽出宝贵时间为社区做出贡献。 Inb4 此对话因质量低下而被移动/删除。抵抗万岁!【参考方案9】:

你不会相信,startvisual studio 作为管理员

从消息中可以明显看出

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

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

所以只需restartvisual studio 作为管理员

【讨论】:

【参考方案10】:

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

<UseIISExpress>false</UseIISExpress>

并将其更改为 true。

<UseIISExpress>true</UseIISExpress>

【讨论】:

虽然我觉得这更像是一个解决问题的方法而不是实际的解决方案,但在它解决了我最关心的问题时给了它一个大拇指。 工作得很好:)【参考方案11】:

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

【讨论】:

我是我们团队中唯一看到此 IIS 错误的人。我与之合作的开发团队拥有来自源代码控制的相同 .csproj 文件,因此上述其他解决方案不是我的问题。事实证明,您提到的 .csproj.user 文件在我的情况下导致了此错误。谢谢! 在尝试了大多数其他方法后,这对我有用 这是正确答案。它解决了您机器上项目配置的问题(在使用 TFS 时尤其重要)。 如果您设置了自定义 iisurl 标签但项目仍然在本地主机上启动,这也是解决方案 MachineName.domain:12345/</IISUrl> 这个对我有用。在我的情况下没有 设置。【参考方案12】:

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

【讨论】:

如您所见,这已经配置好了,但是主机名是空的。我发现将其更改为“localhost”可以纠正我机器上的问题,其中所有 .csproj 文件都指向“localhost/[vdirname]”。感谢您的提示!【参考方案13】:

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

【讨论】:

【参考方案14】:

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

在 mywebproject.csproj 文件中--

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

【讨论】:

【参考方案15】:

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

【讨论】:

【参考方案16】:

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

文件>打开>网站

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

【讨论】:

【参考方案17】:

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

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

【讨论】:

【参考方案18】:

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

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

所以我改成:

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

【讨论】:

【参考方案19】:

在我的例子中,csproj 文件中引用的 url 不正确。

需要以www.

为前缀

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

【讨论】:

【参考方案20】:

在我的情况下,请确保您有一个“默认”网站

【讨论】:

【参考方案21】:

检查是否安装了 IIS Express。如果 IIS Express 缺失,Visual Studio 可能会放弃设置 &lt;UseIISExpress&gt;false&lt;/UseIISExpress&gt; 并仍然寻找 express。

【讨论】:

【参考方案22】:

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

【讨论】:

【参考方案23】:

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

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

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

【讨论】:

【参考方案24】:

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

<UseIIS>true</UseIIS> by <UseIIS>false</UseIIS>
<UseIISExpress>true</UseIISExpress> by <UseIISExpress>false</UseIISExpress>

【讨论】:

我还必须将 DevelopmentServerPort 更改为 80 以外的值。 如果在 csproj 文件中找不到设置。打开 .csproj.user 文件并在那里执行。【参考方案25】:

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

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

【讨论】:

【参考方案26】:

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

iisreset

【讨论】:

【参考方案27】:

在我的例子中,这个问题是由损坏的 IIS 绑定引起的。具体来说,我的“http”绑定已被删除。重新创建它可以解决问题。

【讨论】:

我遇到了一个非常相似的问题。我的 HTTP 绑定似乎有一天重命名了自己 -_- &lt;IISUrl&gt; 的项目文件设置没有改变(感谢 SVN 确认我的记忆和我的理智),但不知何故 iis 绑定有。修复它并立即加载投影。 另外,请记住检查您是否出于某种原因更改了目标站点的 sni/主机名。这导致了我的错误。【参考方案28】:

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

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

在项目文件中,更改以下行:&lt;UseIIS&gt;True&lt;/UseIIS&gt;&lt;UseIIS&gt;False&lt;/UseIIS&gt; 保存文件。

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

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

【讨论】:

VS2010中UseIIS不在csproj文件中,而是在.csproj.user文件中 在我的情况下,我仍然想使用 IIS,所以我只是更改了 URL,非常感谢。 我在升级和移动时遇到了这个问题。这对我有用,尽管由于没有加载解决方案,我只是在文本编辑器中打开了 csproj。谢谢道格。 这是正确答案。项目配置为同时使用 IIS 和 IISExpress。 使用 VS2013,右键单击解决方案时我看不到 Edit ProjectName.csproj。我通过转到文件系统并手动编辑 .csproj 文件来完成编辑。它是只读的,所以我不得不跳一段小舞,但它确实奏效了。

以上是关于Web 应用程序项目 [...] 配置为使用 IIS。找不到 Web 服务器 [...]。的主要内容,如果未能解决你的问题,请参考以下文章

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

Web 应用程序项目 Himall.Web 已配置为使用 IIS。 无法访问 IIS 元数据库

转换 Web API 以使用自托管

你不具备访问 IIS 配置文件的权限。要在 IIS 上打开和创建网站,需要使用 Administrator 帐户运行 Visual Studio。

你不具备访问 IIS 配置文件的权限。要在 IIS 上打开和创建网站,需要使用 Administrator 帐户运行 Visual Studio。

项目()已配置为使用IIS Web服务器,但此计算机上...