【问题标题】:Make OData service work in IIS使 OData 服务在 IIS 中工作
【发布时间】:2014-09-10 08:27:16
【问题描述】:

我有一个来自 MS 的 OData 服务示例。这是相关的代码:

        using (WebApp.Start(_baseAddress, Configuration))
        {...}

    public static void Configuration(IAppBuilder builder)
    {
        HttpConfiguration config = new HttpConfiguration();
        config.MapODataServiceRoute(routeName: "OData", routePrefix: "odata", model: GetModel());
        builder.UseWebApi(config);
    }

    private static IEdmModel GetModel()
    {
        ODataConventionModelBuilder builder = new ODataConventionModelBuilder();
        builder.EntitySet<Product>("Products");
        return builder.GetEdmModel();
    }

这很好用,产品控制器也很棒。我现在正试图将其移至 Web 项目以在 IIS 中工作,但我得到了一个空白文档返回。我已经成功地追踪到了这条线

builder.UseWebApi(config);

或者至少当我评论这条线时,它给出了相同的行为。该示例来自 https://aspnet.codeplex.com/SourceControl/latest#Samples/WebApi/OData/v4/ODataOpenTypeSample/,因为我正在尝试在返回对象上使用 DynamicProperties。

这是我的 IIS 项目 WebApiConfig 的代码:

        public static void Register(HttpConfiguration config)
        {
            // Web API routes
            config.MapHttpAttributeRoutes();
            config.MapODataServiceRoute(routeName: "OData", routePrefix: "odata", model: GetModel());
        }

        private static IEdmModel GetModel()
        {
            ODataConventionModelBuilder builder = new ODataConventionModelBuilder();
            builder.EntitySet<Product>("Products");
            var edmModel = builder.GetEdmModel();
            return edmModel;
        }

【问题讨论】:

    标签: c# iis odata


    【解决方案1】:

    此示例https://aspnet.codeplex.com/SourceControl/latest#Samples/WebApi/OData/v4/ODataActionsSample/ 位于 IIS 主机上,您可能希望将您的项目与它进行比较。而且我不认为 config.MapHttpAttributeRoutes();需要。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-30
      • 1970-01-01
      • 2019-10-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多