Entity Framework '401 Not Authorized' при попытке удалить одну запись из таблицы базы данных - PullRequest
0 голосов
/ 27 февраля 2012

Я получаю сообщение об ошибке «401 - не авторизован», когда я пытаюсь удалить одну запись из таблицы базы данных с помощью Entity Framework.

Таблица базы данных определенно имеет правильные разрешения, а для файла .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 + Data + Services 401 0 0 1

Может кто-нибудь пролить свет на то, почему это может происходить?

РЕДАКТИРОВАТЬ: выборка данных и добавление новых строк в ту же таблицу в настоящее время работает без проблем.

Ответы [ 2 ]

2 голосов
/ 27 февраля 2012

Похоже, что ваша служба WCF требует какой-либо авторизации / аутентификации, и вы не авторизованы должным образом. Проверьте настройки WCF и соответствующим образом аутентифицируйте клиента.

0 голосов
/ 27 февраля 2012

Оказывается, это какая-то проблема с правами доступа к файлу .svc.

Я решил проблему, предоставив удостоверение ApplicationPool для службы Разрешите изменить файл /MyService.svc.

Я взял этот совет из этого поста: http://social.msdn.microsoft.com/Forums/eu/adodotnetdataservices/thread/987b5808-d1d3-41a6-be80-206ead679f46

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...