【问题标题】:Getting started with WCF Data ServicesWCF 数据服务入门
【发布时间】:2011-06-20 15:36:56
【问题描述】:

这是我在原本空白的 Web 应用程序 (.Net 4) 中拥有的唯一代码:

public class Spork
{
    public string Name { get; set; }
    public DateTime BirthDate { get; set; }
}

public class WcfDataService1 : DataService<Spork>
{
    public static void InitializeService(DataServiceConfiguration config)
    {
        config.SetEntitySetAccessRule("*", EntitySetRights.AllRead);
        config.SetEntitySetPageSize("*", 26);
        config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V2;
    }

    [WebGet]
    public IQueryable<Spork> Get()
    {
        List<Spork> retval = new List<Spork>();
        retval.Add(new Spork() { BirthDate = DateTime.Now, Name = "jason" });
        return retval.AsQueryable<Spork>();
    }
}

如果我转到http://localhost:1285/WcfDataService1.svc/,我会收到以下回复:

<service xml:base="http://localhost:1285/WcfDataService1.svc/">
    <workspace>
        <atom:title>Default</atom:title>
    </workspace>
</service>

到目前为止一切都很好,我猜。现在,我想去http://localhost:1285/WcfDataService1.svc/Get 获取我的spork。但我收到“未找到“获取”部分的资源。”错误。我误会了什么?

【问题讨论】:

    标签: c# wcf-data-services


    【解决方案1】:

    您正在使用 DataService 但 Spork 不是数据源(上下文),它是一个实体类。

    尝试在数据上下文中定义您的 Spork,例如使用实体框架模型或 Linq To Sql 模型。

    【讨论】:

      【解决方案2】:

      您似乎正在尝试将 REST 与 WCF 结合使用。可以这样做(请参阅:http://msdn.microsoft.com/en-us/magazine/dd315413.aspx),但默认情况下,WCF 是基于 SOAP 的。如果要使用 URL + 动词,则必须在 web.config 中进行设置。

      祝你好运!

      【讨论】:

      • WCF 数据服务支持 OData (=Atom + REST)。
      猜你喜欢
      • 2013-12-13
      • 2011-04-22
      • 2011-01-03
      • 2012-01-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-16
      相关资源
      最近更新 更多