Owin Odata Web API自我主机406错误

时间:2015-09-09 08:13:26

标签: odata asp.net-web-api owin

我正在尝试创建一个支持odata的owin self host webapi。 当我调用get方法时(仅通过使用chrome冲浪),我添加了所有依赖项并设置了所有内容。 我放在GET上的断点被调用并返回而没有异常。 但chrome只返回一个空白屏幕,在chrome的控制台中找不到http错误。 当我在IE10中执行此操作时(旧版本,但我不允许更新)我得到406(不可接受)。

这是我的Startup.cs代码:

  public void Configuration(IAppBuilder appBuilder)
    {
        // Configure Web API for self-host. 
        HttpConfiguration config = new HttpConfiguration();
        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );

        //config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("application/json"));
        //config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("application/xml"));

        ODataModelBuilder builder = new ODataConventionModelBuilder();
        builder.EntitySet<Product>("Products");

        config.MapODataServiceRoute(
        routeName: "ODataRoute",
        routePrefix: null,
        model: builder.GetEdmModel());

        appBuilder.UseWebApi(config);
    }

这是我的控制器代码,只是一个简单的GET。

 public class ProductsController : ODataController
{
    ProductsContext db = new ProductsContext();

    [EnableQuery]
    public IQueryable<Product> Get()
    {
        try
        {
            return db.Products;
        }
        catch (System.Exception ex)
        {
            string x = "y";
            return db.Products;
        }
    }
}

db.Products现在是一个空表,但这仍然应该返回一个空数组吗?

非常感谢任何帮助! 感谢。

0 个答案:

没有答案