【发布时间】:2013-12-13 20:18:53
【问题描述】:
我已经尝试让 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 系统正在生成此响应..它实际上开始处理请求..但由于某种迟钝的原因失败了。
我按照指示找到了一个我认为的发球台,但显然我错过了一些东西。 我现在已经一步一步地完成了这个过程,试图找到我可能跳过的内容。
更新:
啊哈.. 在另一个类似的问题下,他们建议使用 config.UserVerboseErrors = true 添加详细消息。这对我没有任何影响..但是使用属性的替代方法确实可以!使用 [ServiceBehavior(IncludeExceptionDetailInFaults = true)] 装饰类,现在会产生这个更具描述性的错误。
服务器在处理请求时遇到错误。例外 消息是'类型的表达 'System.Data.Entity.Core.Objects.ObjectContext' 不能用于 返回类型“System.Data.Objects.ObjectContext”。查看服务器日志 更多细节。异常堆栈跟踪是:blahblah
【问题讨论】:
标签: c# wcf wcf-data-services