使OData服务在IIS中工作
本文关键字:工作 IIS OData 服务 | 更新日期: 2023-09-27 18:21:26
我有一个来自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;
}
此示例https://aspnet.codeplex.com/SourceControl/latest#Samples/WebApi/OData/v4/ODataActionsSample/在IIS主机上,你可能想将你的项目与它进行比较。MapHttpAttributeRoutes();需要。