这是我在其他空白网页应用程序(.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
获取我的支持。但我得到了“找不到该段的资源'Get'。”错误。我误解了什么?
答案 0 :(得分:2)
您使用的是DataService,但Spork不是数据源(Context),它是一个实体类。
尝试在数据上下文中定义Spork,例如使用Entity Framework模型或Linq To Sql模型。
答案 1 :(得分:0)
您似乎正在尝试将REST与WCF一起使用。可以这样做(参见:http://msdn.microsoft.com/en-us/magazine/dd315413.aspx)但默认情况下,WCF是基于SOAP的。如果您想使用URL +动词,则必须在web.config中进行设置。
祝你好运!