【问题标题】:The Web Application Project [...] is configured to use IIS. The Web server [...] could not be found.Web 应用程序项目 [...] 配置为使用 IIS。找不到 Web 服务器 [...]。
【发布时间】:2021-10-24 10:33:45
【问题描述】:

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

【问题讨论】:

    标签: c# asp.net iis


    【解决方案1】:

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

    首先,您需要确保安装了正确版本的 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.. 当我删除了有问题的条目时,我收到了需要删除条目的错误消息。
    • 即将针对新的错误消息发布一个单独的问题
    【解决方案2】:

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

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

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

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

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

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

    【讨论】:

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

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

    【讨论】:

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

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

    iisreset
    

    【讨论】:

      【解决方案5】:

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

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

      【讨论】:

        【解决方案6】:

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

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

        【讨论】:

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

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

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

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

        【讨论】:

          【解决方案8】:

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

          【讨论】:

            【解决方案9】:

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

            【讨论】:

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

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

            【讨论】:

              【解决方案11】:

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

              【讨论】:

                【解决方案12】:

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

                需要以www.

                为前缀

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

                【讨论】:

                  【解决方案13】:

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

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

                  所以我把它改成了:

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

                  【讨论】:

                    【解决方案14】:

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

                    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。
                    【解决方案15】:

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

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

                    【讨论】:

                      【解决方案16】:

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

                      文件>打开>网站

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

                      【讨论】:

                        【解决方案17】:

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

                        【讨论】:

                          【解决方案18】:

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

                          在 mywebproject.csproj 文件中--

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

                          【讨论】:

                            【解决方案19】:

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

                            从消息中可以明显看出

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

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

                            所以只需restartvisual studio 作为管理员

                            【讨论】:

                              【解决方案20】:

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

                              【讨论】:

                                【解决方案21】:

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

                                【讨论】:

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

                                对于我的项目,我不得不从 .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 行,我就可以在解决方案资源管理器中看到这些项目的依赖关系。对我来说,这是一个低风险高回报的选择,因为我可以轻松撤消这些更改。谢谢!
                                【解决方案23】:

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

                                <UseIISExpress>false</UseIISExpress>
                                

                                并将其更改为 true。

                                <UseIISExpress>true</UseIISExpress>
                                

                                【讨论】:

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

                                我只是通过从以下链接下载后重新安装 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 此对话因质量低下而被移动/删除。抵抗万岁!
                                【解决方案25】:

                                按照这个完整的解决方案逐步完成。它在 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(如果没有配置 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. 然后右键单击并重新加载您的项目

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

                                【讨论】:

                                  【解决方案26】:

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

                                  【讨论】:

                                    【解决方案27】:

                                    原因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 步,以免影响远程代码库和服务器部署设置。

                                    【讨论】:

                                      【解决方案28】:

                                      原来我的 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>
                                      

                                      【讨论】:

                                        猜你喜欢
                                        • 2020-04-01
                                        • 1970-01-01
                                        • 1970-01-01
                                        • 2023-03-26
                                        • 1970-01-01
                                        • 2013-09-01
                                        • 1970-01-01
                                        • 1970-01-01
                                        相关资源
                                        最近更新 更多