У меня есть образец из MS для службы OData. вот уместна код:Сделать работу службы OData в IIS
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();
}
Это прекрасно работает и контроллер Products отлично. Теперь я пытаюсь переместить его в веб-проект для работы в 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;
}