0

所以我要建立一个ASP.NET的WebAPI应用程序,每当我试图调用API我得到这个消息: 的WebAPI没有HTTP资源发现

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

我已经尝试了一些不同的URL去调用该API,但仍然不能得到它的任何地方。 我一直在使用以下URL来调用API

http://localhost:62834/api/PiDBTest 

似乎无法明白为什么我没有收到来自呼叫任何成功?

下面是该API控制器和RouteConfig

PiDBTest代码:

public class PiDBTest : ApiController 
{ 
    private pidbEntities db = new pidbEntities(); 

    // GET: api/PiDBTest 
    public IQueryable<PiData> GetPiDatas() 
    { 
     return db.PiDatas; 
    } 
} 

RouteConfig:

public static class WebApiConfig 
{ 
    public static void Register(HttpConfiguration config) 
    { 
     config.SuppressDefaultHostAuthentication(); 
     config.Filters.Add(new HostAuthenticationFilter(OAuthDefaults.AuthenticationType)); 

     config.MapHttpAttributeRoutes(); 

     config.Routes.MapHttpRoute(
      name: "DefaultApi", 
      routeTemplate: "api/{controller}/{id}", 
      defaults: new { id = RouteParameter.Optional } 
     ); 
    } 
} 

回答

2

启用属性的路由,这会工作。

[RoutePrefix("api/PiDBTest")] 
public class PiDBTest : ApiController 
{ 
    private pidbEntities db = new pidbEntities(); 

    // GET: api/PiDBTest 
    [HttpGet] 
    [Route("")] 
    public IQueryable<PiData> GetPiDatas() 
    { 
     return db.PiDatas; 
    } 
} 
+0

这仍然会产生同样的错误。在阅读以前的答案之后,我曾尝试过'[HttpGet]'。即使当我尝试没有'[RoutePrefix(“api/PiDBTest”)]' – MuggySoft

+0

你确定路由正在注册。请检查以确保在启动时调用WebApiConfig.Register。 – Nkosi

+0

我在一个包含'config.Routes.MapHttpRoute(.....'的行中插入了一个断点,并且在我加载时遇到了这个断点。 – MuggySoft

0

你能在你的方法 公开IQueryable的GetPiDatas的顶部添加[HTTPGET()

+0

尝试了这个,但是产生了相同的错误。 – MuggySoft

1

请尝试更改API的类如下,

public class PiDBTestController : ApiController 
    { 
     private pidbEntities db = new pidbEntities(); 

     // GET: api/PiDBTest 
     [HttpGet] 
     [Route("")] 
     public IQueryable<PiData> GetPiDatas() 
     { 
      return db.PiDatas; 
     } 
    } 
相关问题