实体框架';401未授权';尝试从数据库表中删除单个记录时

本文关键字:删除 单个 数据库 记录 框架 授权 实体 | 更新日期: 2023-09-27 18:25:51

当我尝试使用实体框架从数据库表中删除单个记录时,返回了"401-未授权"错误消息。

数据库表肯定具有正确的权限,实体框架的.svc文件设置为:

config.SetEntitySetAccessRule("*", EntitySetRights.All);

我在应用程序中用于删除的代码非常简单:

MyObject myObj = this.MyObjects.SingleOrDefault(t => t.RecordID == recordID);
svc.DeleteObject(myObj);
svc.SaveChanges();

"MyObject"指的是EntityObject中的一个项,我已将该项提取到列表中。

代码似乎是正确的,因为它可以识别要删除的对象。以下日志条目显示了服务上发生的事情:

2012-02-27 11:06:02 192.XXX.X.XXX删除/MyService.svc/MyObjects(19)-8010-192.XX.X>Microsoft+ADO.NET+Data+Services 401 0 0 1

有人能解释为什么会发生这种情况吗?

编辑:获取数据并向同一个表添加新行目前没有问题。

实体框架';401未授权';尝试从数据库表中删除单个记录时

您的WCF服务似乎需要某种授权/身份验证,而您没有得到适当的授权。请检查WCF配置,并对客户端进行适当的身份验证。

发现实际.svc文件的文件权限存在某种问题。

我通过在/MyService.svc文件上授予服务的ApplicationPool标识Modify权限来解决问题。

我从这篇帖子中得到了以下提示:http://social.msdn.microsoft.com/Forums/eu/adodotnetdataservices/thread/987b5808-d1d3-41a6-be80-206ead679f46