我的一些控制器操作在我的ASP.NET核心应用程序

时间:2017-04-13 15:13:04

标签: c# asp.net iis asp.net-core

这是我遇到的一个有趣的问题。我的控制器就像

    public HomeController()
    {
        TaskRepo = new ArchiveTasksRepository();
    }

    // GET: /<controller>/
    public IActionResult Index()
    {
        return View();
    }

    [Route("tasks/all/count")]
    [HttpGet]
    [ResponseCache(Location = ResponseCacheLocation.None, NoStore = true)]
    public ActionResult NumberArchiveTasks()
    {
        return Json(TaskRepo.GetTaskCount());
    }

我有一堆其他端点,例如NumberArchiveTasks端点。这是我在教程后编写的ASP.NET核心应用程序。当我在本地运行应用程序时,所有端点都有效。但是,当我在远程服务器上部署到IIS时,Index可以正常运行而其他服务器则无法运行;他们404.我不确定它是HttpGet属性,我使用的是ActionResult而不是IActionResult,或者它究竟是什么可能。也许别的东西。知道如何解决这个问题,或者我应该猜测并检查它是否有效?

1 个答案:

答案 0 :(得分:0)

我相信你的默认路线会匹配/ home / numberarchivetasks。你的路由属性不是以斜杠开头所以它是相对的,这意味着它可能是/ home / tasks / all / count - 你试过吗?

我建议你将你的动作放在一个TasksController中(带有属性[Route(“[controller]”)]),然后动作可以有一个相对的路径。