尝试从数据库表中删除单个记录时,实体框架'401 Not Authorized'

时间:2012-02-27 11:30:18

标签: c# entity-framework sql-server-2008-r2

当我尝试使用Entity Framework从数据库表中删除单个记录时,我收到了“401 - Not Authorized”错误消息。

数据库表肯定具有正确的权限,实体框架的.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.XXX.X.X> Microsoft + ADO.NET +数据+服务401 0 0 1

任何人都可以解释为什么会发生这种情况吗?

编辑:获取数据并在同一个表中添加新行目前无问题。

2 个答案:

答案 0 :(得分:2)

您的WCF服务看起来需要某种授权/身份验证,并且您未获得适当授权。检查您的WCF配置,并相应地验证您的客户端。

答案 1 :(得分:0)

事实证明,对于实际的.svc文件,文件权限存在某种问题。

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

我从这篇文章中提到了这个提示:http://social.msdn.microsoft.com/Forums/eu/adodotnetdataservices/thread/987b5808-d1d3-41a6-be80-206ead679f46

相关问题