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