ASP.NET WebAPI 自主机未解析到控制器的路由

本文关键字:控制器 路由 NET WebAPI 主机 ASP | 更新日期: 2023-09-27 18:32:33

我正在"5.0.0-rc1"版本中使用"Microsoft.AspNet.WebApi.SelfHost"NuGet包(也尝试了当前的稳定版),但不幸的是,我无法让我的应用程序设置将配置的路由解析为我的ApiController实现。

该应用程序非常简单,几乎可以在所有示例中找到。它包含一个 .NET 控制台应用程序,其中自承载服务所在的主类中。

using System.Web.Http.SelfHost;
using System.Web.Http;
using System;
namespace EP.Server
{
class Program
{
    static void Main(string[] args)
    {
        var config = new HttpSelfHostConfiguration("http://localhost:60064");
        config.Routes.MapHttpRoute(
            name: "Default Route",
            routeTemplate: "api/{controller}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );
        using (var server = new HttpSelfHostServer(config))
        {
            server.OpenAsync().Wait();
            Console.WriteLine("Server ist running on "+config.BaseAddress + " hit ENTER to stop.");
            Console.ReadLine();
            server.CloseAsync().Wait();
        }
    }
}
}

然后有一个单独的控制器类,它位于同一个项目中,并从 ApiController 类继承。

using System.Web.Http;
namespace EP.Server
{
class UsersController : ApiController 
{
    [HttpGet]
    public string Get()
    {
        return "Hello I'm a user...";
    }
}
}

当我从任何浏览器调用服务时,错误消息听起来像这样。

<Error>
<Message>No HTTP resource was found that matches the request URI   'http://localhost:60064/api/Users'.</Message>
<MessageDetail>No type was found that matches the controller named 'Users'.</MessageDetail>
</Error>

有人知道那里出了什么问题吗?不幸的是,我在网上找不到任何类似的问题/问题。

到目前为止谢谢你!

ASP.NET WebAPI 自主机未解析到控制器的路由

Web API 控制器必须是公共的