我已经尝试让 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