WCF数据服务5.6快速入门

2023-11-23

我已经尝试让 WCF 数据服务服务器工作几天了。 我今天终于退缩了,只是尝试按照快速启动所示的方式进行操作……没有其他任何事情……并且是在全新的项目中。这当然会起作用。

但它没有……它和我的其他测试一样失败了。

我只是跟着这个example。使用 Visual Studio 2013 for Web Express,托管使用 IIS Express。 我已安装 WCF 工具版本 5.6,以便 Visual Studio 具有 WFC 数据服务 5.6 模板。

它的要点是

创建 ASP.Net 应用程序 选择 MVC 类型,不添加 MVC 以外的任何文件夹,并且不添加单元测试、个人帐户身份验证。

为 NorthWind 数据库添加一个 ADO.Net 实体数据模型(在 web.config 中称为 NorthwindEntities),并导入所有表。

添加 WCF 数据服务 5.6 项,将其命名为 NorthWind.svc。

将 NorthWind.svc.cs 支持代码更改为以下内容。

using System;
using System.Collections.Generic;
using System.Data.Services;
using System.Data.Services.Common;
using System.Linq;
using System.ServiceModel.Web;
using System.Web;
namespace StackOverflowApp
{
    public class NorthWindService : DataService<NorthwindEntities>
    {
        // This method is called only once to initialize service-wide policies.
        public static void InitializeService(DataServiceConfiguration config)
        {
            config.UseVerboseErrors = true;
            config.SetEntitySetAccessRule("Orders", EntitySetRights.AllRead | EntitySetRights.WriteMerge | EntitySetRights.WriteReplace );
            config.SetEntitySetAccessRule("Order_Details", EntitySetRights.AllRead| EntitySetRights.AllWrite);
            config.SetEntitySetAccessRule("Customers", EntitySetRights.AllRead);
            config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V3;
        }
    }
}

现在它已准备好构建和运行..它应该可以工作..是吗?

我运行它,并导航到该服务。我收到以下投诉。

<div id="content">
  <p class="heading1">Request Error</p>
  <p>The server encountered an error processing the request. See server logs for more details.</p>
</div>

我该如何调试呢? 当导航到在应用程序中生成错误的页面或导航到不存在的页面时,这不是典型的响应。我感觉 data.service 系统正在生成此响应..它实际上开始处理请求..但由于某些迟钝的原因失败了。

我按照指示找到了我认为的发球台,但显然我错过了一些东西。 我已经一步一步地完成了这个过程好几次,试图找到我可能跳过的内容,但没有成功。


Update:

啊哈..在另一个类似的问题下,他们建议使用添加详细消息config.UserVerboseErrors = true。这对我来说没有任何区别..但是使用属性的替代方法确实有作用!装饰班级[ServiceBehavior(IncludeExceptionDetailInFaults = true)],现在会产生这个更具描述性的错误。

服务器在处理请求时遇到错误。例外情况 消息是'类型的表达式 “System.Data.Entity.Core.Objects.ObjectContext”不能用于 返回类型“System.Data.Objects.ObjectContext”。查看服务器日志 更多细节。异常堆栈跟踪是:blahblah


听起来您正在使用 Entity Framework 6,但它还没有发布那么久。您需要执行一些额外的步骤才能使 WCF Data Services 5.6 和 EF 6 良好地协同工作。

您需要添加额外的 WCF 数据服务实体框架提供程序 Nuget 包,然后而不是继承您的服务DataService<T>,你继承自EntityFrameworkDataService<T>.

完整步骤位于数据服务博客上:http://blogs.msdn.com/b/astoriateam/archive/2013/10/02/using-wcf-data-services-5-6-0-with-entity-framework-6.aspx

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WCF数据服务5.6快速入门 的相关文章

随机推荐