【问题标题】:ASP.NET Core This localhost page can’t be foundASP.NET Core 找不到这个 localhost 页面
【发布时间】:2017-04-18 09:42:39
【问题描述】:

有人遇到过这种问题吗?我认为这与 IIS 左右有关......我正在使用 IIS 10 也使用 VS2017 和 ASP.NET Core。当我启动应用程序时,我看到了这个错误:

找不到这个本地主机页面

没有找到该网址的网页:http://localhost:44306/

我尝试更改端口。但没有任何效果。 我尝试了其他应用程序,但只有这个项目有这种错误,我不知道为什么。

知道如何解决这个问题吗?

更新:

【问题讨论】:

  • 您是否设置了默认启动页面?你确定你有那个项目的页面吗?您是否启用了目录浏览(IIS)?不要着急,一一解决问题,直到找到明确的解决方案。
  • 您是否删除了主视图/控制器
  • 如何设置故障启动页?我已经在我的网站上设置了启动项目。我也使用这条路线:app.UseMvcWithDefaultRoute();
  • 您的项目是否在本地 PC 上运行?
  • 我正在本地 PC 上工作,实际上这是唯一一个遇到此类问题的项目。

标签: iis asp.net-core-mvc


【解决方案1】:

当我意识到我不小心删除了 StartUp 类的 Configure 方法中的默认路由时,我解决了这个问题:

        app.UseMvc(routes =>
        {
            routes.MapRoute(
                name: "default",
                template: "{controller=Home}/{action=Index}/{id?}");
        });

【讨论】:

  • 这有助于我在登录时解决我的问题,并在不使用实体框架的情况下对我的索引页使用 [Authorize] 属性。这个问题需要 2 周时间。我烦了。非常感谢!
【解决方案2】:

这类似于@ToMissTheMarcanswer,但显示了如何在 .Net Core 3.0 版中定义路由

我在尝试访问我的 API 端点 https://localhost:44380/api/Restaurants 时遇到了类似的问题

为了映射从ControllerBase类继承的API控制器类的路由,我需要将endpoints.MapControllers这一行添加到Startup.cs类的Configure方法中,如下所示:

        //Pre .NET core 3.0 way of doing things
        //app.UseMvc(routes => {<some routing stuff here>});

        //.NET core 3.0 way
        app.UseRouting();
        app.UseEndpoints(endpoints =>
        {
            endpoints.MapRazorPages(); //Routes for pages
            endpoints.MapControllers(); //Routes for my API controllers
        });

【讨论】:

    【解决方案3】:

    如果上面的答案不起作用或者您来自 .NET Web API 教程,这可能会有所帮助。所以对我来说,我从launchSettings.json 中删除了launchUrl 属性,因为我想使用静态页面(按照我正在遵循的教程的说明)并且忘记在我的匆忙中添加两行。我终于回去查看了它,这解决了我的问题。

    打开Startup.cs 文件并在public void Configure... 中在app.UseMvc(); 行上方添加以下内容:

    app.UseDefaultFiles(); app.UseStaticFiles();

    【讨论】:

    • 如果使用 .net core 2.1 您的解决方案是正确的,但您需要添加这一行 services.AddMvc();
    【解决方案4】:

    遇到同样的问题,原来我无意间通过重构将HomeController的Index()方法改成了属性

    public ViewResult Index() => View()
    

    成为

    public ViewResult Index => View();
    

    【讨论】:

      【解决方案5】:

      我也遇到过同样的问题,但这个错误很愚蠢,因此解决方案非常简单! 我的路线有错字 我在控制器名称后错误地添加了一个空格 我知道它不是很技术性的答案,但仔细检查不会有坏处

      曾经:

      app.UseEndpoints(endpoints =>
                  {
                      endpoints.MapControllerRoute("Default", "{controller= Home}/{action=Index}/{id?}");
      });
      

      更正为:

      app.UseEndpoints(endpoints =>
                  {
                      endpoints.MapControllerRoute("Default", "{controller=Home}/{action=Index}/{id?}"); 
      });
      

      【讨论】:

        【解决方案6】:

        确保项目、lauchsettings.json 端口设置正确。

        【讨论】:

        • 实际上是我的错,我评论了我的索引页面,这就是他们找不到索引页面并显示错误的原因。现在它已经修复了。
        【解决方案7】:

        如果发生这种情况,您缺少 wwwroot 文件夹。

        【讨论】:

          【解决方案8】:

          这发生在我身上,因为我将 .net core 1 Razor Page 复制到了我的 .net core 2.2 项目中。我向 Razor 页面添加了 @page 声明,一切正常。只是在此处添加此内容,因为这是此问题的第一个 Google 结果。

          【讨论】:

            【解决方案9】:

            请务必检查并尝试以下项目:

            1. 在项目属性中更改端口号。

            2. 使用“iisreset”命令在 cmd 中重置 IIS。

            3. 检查了 StartUp.cs 以确保

              app.UseEndpoints(端点 => { 端点.MapControllerRoute( 名称:“默认”, 模式:“{controller=Home}/{action=Index}/{id?}”); });

            4. 重新启动 VS 和笔记本电脑,但也无济于事。

            5. 检查了launchSetting.json,但一切都是正确的。

            【讨论】:

              【解决方案10】:

              就我而言,我将index 名称修改为HomePage,并通过检查几个地方来解决它:

              (您可以在整个解决方案中搜索index进行检查)

              1. Views/_Layout.cshtml
              <a class="navbar-brand" asp-area="" asp-controller="Home" asp-action="HomePage">xxx</a>
              
              1. Startup.cs
                          app.UseEndpoints(endpoints =>
                          {
                              endpoints.MapControllerRoute(
                                  name: "default",
                                  pattern: "{controller=Home}/{action=HomePage}/{id?}");
                          });
              
              1. Controllers/HomeController.cs
              public IActionResult HomePage()
                      {
                          return View();
                      }
              

              我编辑了三个地方后,效果很好。

              【讨论】:

                【解决方案11】:

                在您的项目中,转到属性 -> lunchSettings.json(双击)

                在 iisSettings -> iisExpress -> applicationUrl(更改本地主机的端口号)

                再试一次,问题应该成功解决了。

                【讨论】:

                  【解决方案12】:

                  在我的情况下,它只是切换到 ISS 在启动时提供的另一个 localhost 端口。第一个出现错误“找不到页面”,但第二个按预期工作。

                  【讨论】:

                    猜你喜欢
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 2018-12-05
                    • 2020-08-05
                    • 1970-01-01
                    • 2021-09-03
                    • 1970-01-01
                    相关资源
                    最近更新 更多