为啥断点不在 odata Web api 应用程序上运行?

Posted

技术标签:

【中文标题】为啥断点不在 odata Web api 应用程序上运行?【英文标题】:Why doesn't breakpoint run on odata Web api application?为什么断点不在 odata Web api 应用程序上运行? 【发布时间】:2014-06-27 06:11:38 【问题描述】:

我在 web api 中创建了 Odata 服务。我在 GetFavoriteStation 上设置了一个断点。但它不工作。 我的域名:127.0.0.1

我将此 URL 称为:mydomain/odata/2013-06/X(guid'23C868DC-07FE-4AC4-B399-D4E76EDE9F0C') 但它不工作。它返回给我错误。错误:找不到资源。

  [AllowAnonymous]
public class XController : EntitySetController<X, Guid>


    [Queryable]
    public X GetX([FromODataUri]Guid id)
    
        X x= null;

查看 App_Start 文件

WebApiConfig.cs



namespace Y.Z

    public static class WebApiConfig
    
        public static void Register(HttpConfiguration config)
        
            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/2013-06/controller/id",
                defaults: new  id = RouteParameter.Optional 
            );


    

【问题讨论】:

【参考方案1】:

我发现这些很可疑:

    实体集 X 未在构建器中定义 也许应该替换 config.Routes.MapODataRoute("ODataRoute", "odata/2013-06", model); with config.Routes.MapODataRoute("ODataRoute", "odata-2013-06/*", model);

    如果是 odata 服务,则无需这样做:

    config.Routes.MapHttpRoute( 名称:“默认API”, routeTemplate: "api/2013-06/controller/id", 默认值:新 id = RouteParameter.Optional );

【讨论】:

以上是关于为啥断点不在 odata Web api 应用程序上运行?的主要内容,如果未能解决你的问题,请参考以下文章

ODATA WEB API扩展使用

如何在自托管 Web API 应用程序中配置 OData 端点

使用 $expand 时的 Web API OData 媒体类型格式化程序

Web API OData V3 `$inlinecount` 失败

在没有实体框架的情况下创建 Odata Web API 应用程序

[转]Web Api系列教程第2季(OData篇)——使用Web Api创建只读的OData服务