Visual studio 中的 OData 服务出现 406 错误
406 error with OData service in Visual studio
我想弄清楚为什么我的 odata 服务无法正常工作。我一直收到 406 错误,我已经尝试了所有推荐的解决方案,但都无济于事。下面是我的代码。
public class Person
{
public int Id { get; set; }
}
public class TestController : ODataController
{
[EnableQuery]
public IQueryable<Person> GetTest()
{
try
{
var persons = new List<Person>(){new Person{ Id= 1}};
return persons.AsQueryable();
}
catch (Exception ex)
{
var here = "dd";
}
return null;
}
在我的 webapiconfig class 中,我有:
// Web API routes
config.MapHttpAttributeRoutes();
var builder = new ODataConventionModelBuilder();
builder.EntitySet<Person>("Person");
config.MapODataServiceRoute("odata", "odata", builder.GetEdmModel());
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
config.IncludeErrorDetailPolicy = IncludeErrorDetailPolicy.Always;
它一直失败并显示 406 错误。它在我的控制器中命中断点,但没有 return 数据。
我想通了。我使用的是 config.MapODataServiceRoute(...
而不是 config.Routes.MapODataServiceRoute...
一旦我更改了它,并且使用了正确的语句,一切就开始工作了。
我想弄清楚为什么我的 odata 服务无法正常工作。我一直收到 406 错误,我已经尝试了所有推荐的解决方案,但都无济于事。下面是我的代码。
public class Person
{
public int Id { get; set; }
}
public class TestController : ODataController
{
[EnableQuery]
public IQueryable<Person> GetTest()
{
try
{
var persons = new List<Person>(){new Person{ Id= 1}};
return persons.AsQueryable();
}
catch (Exception ex)
{
var here = "dd";
}
return null;
}
在我的 webapiconfig class 中,我有:
// Web API routes
config.MapHttpAttributeRoutes();
var builder = new ODataConventionModelBuilder();
builder.EntitySet<Person>("Person");
config.MapODataServiceRoute("odata", "odata", builder.GetEdmModel());
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
config.IncludeErrorDetailPolicy = IncludeErrorDetailPolicy.Always;
它一直失败并显示 406 错误。它在我的控制器中命中断点,但没有 return 数据。
我想通了。我使用的是 config.MapODataServiceRoute(...
而不是 config.Routes.MapODataServiceRoute...
一旦我更改了它,并且使用了正确的语句,一切就开始工作了。