WCFDataServices5.6QuickStart这几天我一直在尝试让WCFDataServices服务器工作。我今天终于退缩了,只是想准确地展示快速入门做了什么……没有别的……在一个全新的项目中。它肯定会起作用。但它没有..它以与我的其他测试相同的方式失败。我只是按照这个例子。使用VisualStudio2013forWebExpress和托管使用IISExpress。我已经安装了WCF工具5.6版,以便VisualStudio具有WFC数据服务5.6模板。它的要点是创建一个ASP.Net应用程序选择MVC类型,除了MVC之外不要添加任何文件夹,并且不要添加单元测试,个人帐户身份验证。为NorthWind数据库添加ADO.Net实体数据模型,在web.config中调用NorthwindEntities,导入所有表。添加WCFDataServices5.6项并将其命名为NorthWind.svc。将NorthWind.svc.cs支持代码更改为以下内容。使用System.Collections.Generic;使用系统数据服务;使用System.Data.Services.Common;使用System.Linq;使用System.ServiceModel.Web;使用System.Web;namespaceStackOverflowApp{publicclassNorthWindService:DataService{//此方法仅调用一次以初始化服务范围的策略。publicstaticvoidInitializeService(DataServiceConfigurationconfig){config.UseVerboseErrors=true;config.SetEntitySetAccessRule("Orders",EntitySetRights.AllRead|EntitySetRights.WriteMerge|EntitySetRights.WriteReplace);config.SetEntitySetAccessRule("Order_Details",EntitySetRights.AllRead|EntitySetRights.AllWrite);config.SetEntitySetAccessRule("客户",EntitySetRights.AllRead);config.DataServiceBehavior.MaxProtocolVersion=DataServiceProtocolVersion.V3;现在它已经准备好了好的构建并运行..它应该工作..是吗?我运行它,然后导航到服务。我收到了以下投诉。请求错误服务器在处理请求时遇到错误。有关详细信息,请参阅服务器日志。我该如何调试?当导航到在应用程序中生成错误的页面或不存在的页面时,这不是典型的响应。我感觉data.service系统正在生成此响应......它实际上开始处理请求......但由于某些迟钝的原因而失败。我按照说明按照我的想法开球,但显然我遗漏了一些东西。我现在已经多次逐步完成这个过程,试图找到我可能跳过但无济于事的事情。更新:啊哈..在另一个类似的问题下,他们建议使用config.UserVerboseErrors=true添加详细消息。这对我没有任何影响..但是使用属性的替代方法却有!使用[ServiceBehavior(IncludeExceptionDetailInFaults=true)]装饰类现在会产生更多描述性错误。服务器在处理请求时遇到错误。异常消息是“表达式类型‘System.Data.Entity.Core.Objects.ObjectContext’不能用于返回类型‘System.Data.Objects.ObjectContext’”。有关更多详细信息,请参阅服务器日志异常堆栈跟踪是:blahblah听起来您正在使用早已不复存在的实体框架6。您需要执行一些额外的步骤才能让WCF数据服务5.6和EF6很好地协同工作。您需要添加额外的WCF数据服务实体框架提供程序Nuget包,然后从EntityFrameworkDataService而不是DataService继承您的服务。完整步骤在数据服务博客上:http://blogs.msdn.com/b/astoriateam/archive/2013/10/02/using-wcf-data-services-5-6-0-with-entity-framework-6.aspx顺便说一句,谢谢。你的回答是正确的克里斯。在启用详细消息的装饰版本并获得有关链接到对象的额外详细问题后,我终于找到了问题。所以我发现了问题并解决了它,或者至少我现在可以使用快速入门指南让它工作。使用我自己的数据库仍然有点squirley..当我知道我在数据库中有项目时返回一个空集..但至少我现在有工作exhibit-A来比较以找到问题。(啊哈!在那里发现了问题,我忘记为我的非Northwind数据库添加web.config权限连接-所以现在一切正常!)无论如何,第一个体面的线索是关注错误消息(直到我使用类属性启用详细消息显示),发现问题实际上与WCF与EntityFramework6的接口有关。(我没有升级到版本6我可能不会有问题)https://entityframework.codeplex.com/workitem/896然后我搜索了WCF5.6和EntityFramework6问题。而且whalla..有一个WCF的alpha版本可以解决这个问题。请注意,如果您逐字按照说明进行操作,您仍然会遇到问题(或者对我来说)。获取alpha2而不是alpha1,因为它修复了链接错误。即Install-PackageMicrosoft.OData.EntityFrameworkProvider-Version1.0.0-alpha2-Prehttp://blogs.msdn.com/b/astoriateam/archive/2013/10/02/using-wcf-data-services-5-6-0-with-entity-framework-6.aspx今天安装alpha26/7/2014“Install-PackageMicrosoft.OData.EntityFrameworkProvider-Pre”。此外,Microsoft.Data.Services版本必须为5.6.0.0。以上就是C#学习教程:WCF数据服务5.6快速入门分享的全部内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权请点击右侧联系管理员删除。如需转载请注明出处:
