Simple.Odata.Client从WCF数据服务检索数据

Simple.Odata.Client从WCF数据服务检索数据,wcf,odata,dataservice,Wcf,Odata,Dataservice,我的wcf数据服务使用的是自主机,当我试图通过simploe.odata.client从wcf数据服务检索数据时,它抛出了一个错误:内部服务器错误。 wcf数据服务代码:公共类RFODataService:dataservice { 公共静态无效初始化ServiceDataServiceConfiguration配置 { config.SetEntitySetAccessRuletypeofDETAIL.Name,EntitySetRights.All; config.SetEntitySetA

我的wcf数据服务使用的是自主机,当我试图通过simploe.odata.client从wcf数据服务检索数据时,它抛出了一个错误:内部服务器错误。 wcf数据服务代码:公共类RFODataService:dataservice { 公共静态无效初始化ServiceDataServiceConfiguration配置 { config.SetEntitySetAccessRuletypeofDETAIL.Name,EntitySetRights.All; config.SetEntitySetAccessRuletypeofHEADER.Name,EntitySetRights.All; } }

自主机代码:`var currentAssembly=Assembly.GetAssemblythis.GetType; 如果currentAssembly==null 未找到返回程序集; var types=currentsassembly.GetTypes.Wherew=>w.IsClass&&w.Namespace.ContainsDataServices.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();
        }`

很麻烦,有人知道原因吗?

因为您遇到了内部服务器错误,很可能是服务实现或设置的问题。我建议您首先通过在浏览器中运行查询来隔离错误。尝试类似于SERVER_URL/Details的方法,我假设您有一个名为Details的实体集,并检查来自服务器的响应。如果这不起作用,那么您的问题是服务器。如果有效,请通过运行Fiddler并检查HTTP流量来检查Simple.Data.Client查询。如果生成的查询不同且错误,您可以在Simple.OData.Client GitHub站点打开问题,我可以对此进行调查。

您好,谢谢您的回答,正如您所说,我发现Simple.OData.Client是正确的,问题是DB连接字符串错误。当我在浏览器中运行时,这是正确的,但当我从DB中检索EF时,它抛出异常。嗨,正如上面的问题,当我在c中使用simple.odata.clent时,它工作了,但当我在android的xamarin中使用它时,它不工作。当它运行到c时,当它运行到字符串temp=detail.Result.ToString时,它没有响应,你知道原因吗?xamarin中的c和android不同吗?谢谢你的阅读!原因是您调用了detail.Result。您应该在移动平台上等待结果,例如temp=wait detail.ToString。非常感谢!你又帮我解决了我的问题。有没有只供android平台开发的文档?或者一些完整的例子?你能给我一个网站吗?另一个问题,我有一个库目标框架:.Net Framework 4.5,Silverlight 5,Xamarin.Android,Xamarin.IOS,当我将odata客户端安装到库中时,它会创建文件夹包,但不会引用dll,odata客户端是否支持库?
        var detail = client.For("DETAIL").FindEntriesAsync();

        string temp = detail.Result.ToString();

        Console.Write(temp);`