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; 
     } 
    } 
相關問題