我有一个来自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;
}
答案 0 :(得分:0)
此示例https://aspnet.codeplex.com/SourceControl/latest#Samples/WebApi/OData/v4/ODataActionsSample/位于IIS主机上,您可能希望将项目与其进行比较。而且我不认为config.MapHttpAttributeRoutes();需要。