ASP.NET Core无法找到此localhost页面

时间:2017-04-18 09:42:39

标签: iis asp.net-core-mvc

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

  

无法找到此本地主页

     

找不到网址的网页:http://localhost:44306/

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

任何想法如何解决这个问题?

更新

10 个答案:

答案 0 :(得分:11)

当我意识到我在StartUp类'配置方法中意外删除了默认路由时,我解决了这个问题:

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

答案 1 :(得分:5)

这类似于ToMissTheMarc的答案,但显示了如何在.Net Core 3.0版中定义路由

尝试访问我的API端点https://localhost:44380/api/Restaurants

时遇到类似的问题

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

        //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
        });

答案 2 :(得分:4)

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

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

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

答案 3 :(得分:1)

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

 $conn = dbManager::getConnection();


   $tr = 1;

for($tr; $tr < $day; $tr++){

  $dt = new DateTime($start);

  $msc = $dt->format('m');

      switch ($msc) {
        case '1':
         $m = '1';
          break;
        case '2':
         $m = '2';
          break;
        case '3':
         $m = '3';
          break;
        case '4':
          $m = '4';
          break;
        case '5':
          $m = '5';
          break;
        case '6':
         $m = '6';
          break;
        case '7':
         $m = '7';
          break;
        case '8':
          $m = '8';
          break;
        case '9':
          $m = '9';
          break;
        case '10':
          $m = '10';
          break;
        case '11':
          $m = '11';
          break;
        case '12':
          $m = '12';
          break;

      }

         if($m < 10){
          $mc = '0'.$m;
         }else{
          $mc = $m;
         }

         if($tr < 10){ 
          $tr = '0'.$tr;
         }else{
          $tr = $tr;
         }


   $data = date('Y-'.$mc.'-'.$tr);

   echo "<tr><td>".$data."</td><td  style='vertical-align:middle;'>";


   $result = $conn->query("SELECT * FROM open ")or die(mysqli_error());


      while($row = mysqli_fetch_array($result)){       

           $Start = $row['Start'];
           $End = $row['End'];

           $dtb = new DateTime($Start);
           $dtb_e = new DateTime($End);
           $dtb_e->add(new DateInterval('PT1H'));

           $w= $dtb->format('Y-m-d');
           $ts = $dtb->format('H'); 
           $te = $dtb_e->format('H');



          if($w == $data){


             for($h=1;$h<24;$h++){

                 if($h >= $ts && $h <= $te){
                   if($w < date('Y-m-d')){ 
                    $color ='gray';
                   }else{
                    $color = 'green';
                   }

                   echo '<p style="display:inline;padding:5px; border:1px solid ;background:'.$color.';color:#fff;border-radius: 5px;margin-right:5px;">'.$h.':00</p>';
                 }else{
                  $color = 'gray';

                  echo '<p style="display:inline;padding:5px; border:1px solid ;background:'.$color.';color:#fff;border-radius: 5px;margin-right:5px;">'.$h.':00</p>';
                 }
              }


              if($data >= date('Y-m-d')){ 

               echo '<div style="display:inline;text-align:rigth;margin-left:35px;"><a class="btn btn-sm btn-success"  href="edit_termin.php?Start='.$row['Start'].'&End='.$row['End'].'&ID='.$row['ID'].'" role="button">Edytuj</a><a class="btn btn-sm btn-danger"  href="del_open.php?Start='.$row['Start'].'&End='.$row['End'].'&ID='.$row['ID'].'" role="button">Usuń</a></div>';
              }else{ 
                echo '<div style="display:inline;text-align:rigth;margin-left:35px;"><a class="btn btn-sm btn-success disabled"  href="edit_termin.php?Start='.$row['Start'].'&End='.$row['End'].'&ID='.$row['ID'].'" role="button">Edytuj</a><a class="btn btn-sm btn-danger disabled"  href="del_open.php?Start='.$row['Start'].'&End='.$row['End'].'&ID='.$row['ID'].'" role="button">Usuń</a></div>';
              }

              if($data != $data){
                        $dodaj = '<div style="display:inline;text-align:rigth;margin-left:35px;"><a class="btn btn-sm btn-success"  href="edit_termin.php?Start='.$data.'" role="button">Dodaj</a></div>';
                         echo $dodaj;
              }else{
                echo 'x';
              }

          }else{
              if($data != $data){
                        $dodaj = '<div style="display:inline;text-align:rigth;margin-left:35px;"><a class="btn btn-sm btn-success"  href="edit_termin.php?Start='.$data.'" role="button">Dodaj</a></div>';
                         echo $dodaj;
              }else{
                echo 'x';
              }
            echo  '<div style="display:inline;text-align:rigth;margin-left:35px;"><a class="btn btn-sm btn-success"  href="edit_termin.php?Start='.$data.'" role="button">Dodaj</a></div>';  


          }


      }  

}
 echo "</td></tr>"; 

成为

public ViewResult Index() => View()

答案 4 :(得分:1)

我遇到了同样的问题,但是错误是一个愚蠢的错误,因此解决方案非常容易! 我的路线上有错字 我在控制器名称后错误地添加了空格 我知道它的技术性不是很高,但是再次检查并不会造成伤害

是:

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

更正为:

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

答案 5 :(得分:0)

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

答案 6 :(得分:0)

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

答案 7 :(得分:0)

发生这种情况是因为我已将.net核心1 Razor Page复制到我的.net核心2.2项目中。我在剃刀页面上添加了@page声明,一切正常。只需在此处添加它,因为这是该问题的第一个Google结果。

答案 8 :(得分:0)

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

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

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

  3. 检查了StartUp.cs以确保

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

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

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

答案 9 :(得分:0)

在我的情况下,我将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();
        }

在我编辑了三个位置之后,它运行良好。