所以我要建立一个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 }
);
}
}
这仍然会产生同样的错误。在阅读以前的答案之后,我曾尝试过'[HttpGet]'。即使当我尝试没有'[RoutePrefix(“api/PiDBTest”)]' – MuggySoft
你确定路由正在注册。请检查以确保在启动时调用WebApiConfig.Register。 – Nkosi
我在一个包含'config.Routes.MapHttpRoute(.....'的行中插入了一个断点,并且在我加载时遇到了这个断点。 – MuggySoft