Simple.Odata.Client从WCF Dataservice检索数据

时间:2014-11-07 03:41:37

标签: wcf odata dataservice

我的wcf dataservice正在使用自托管,当我尝试通过simploe.odata.client从wcf dataservice检索数据时,它会抛出一个错误:内部服务器错误。 wcf dataservice代码:public class RFODataService : DataService<RFODBEntities> { public static void InitializeService(DataServiceConfiguration config) { config.SetEntitySetAccessRule(typeof(DETAIL).Name, EntitySetRights.All); config.SetEntitySetAccessRule(typeof(HEADER).Name, EntitySetRights.All); } }

自主代码:`var currentAssembly = Assembly.GetAssembly(this.GetType());             if(currentAssembly == null)                 返回“未找到大会”;             var types = currentAssembly.GetTypes()。Where(w =&gt; w.IsClass&amp;&amp; w.Namespace.Contains(“DataServices”))。ToArray();

        for (int i = 0; i < types.Length; i++)
        {
            var svcHost = new DataServiceHost(serviceType, new Uri[] { new Uri(string.Format("http://localhost:{0}/", Port)) });
            svcHost.Open();
        }`

simple.odata.client代码:`var client = new ODataClient(“URL”);

        var detail = client.For("DETAIL").FindEntriesAsync();

        string temp = detail.Result.ToString();

        Console.Write(temp);`

麻烦我,有没有人知道原因?

1 个答案:

答案 0 :(得分:0)

由于您获得了InternalServerError,因此很可能是服务实现或设置。我建议您首先通过在浏览器中运行查询来隔离错误。尝试像SERVER_URL / Details(我假设您有一个名为Details的实体集)并检查服务器的响应。如果这不起作用,那么您的问题就是服务器。如果可行,请通过运行Fiddler并检查HTTP流量来检查Simple.Data.Client查询。如果生成的查询不同(和错误),您可以在Simple.OData.Client GitHub网站上打开一个问题,我可以对其进行调查。