19.08.2011, 16:05 | #1 |
Участник
|
CRM 4.0 0x80042f09 уже после добавления роли
Всем привет.
Периодически выполняется такое задание: 1. В CRM cоздается новый пользователь (запросы к сервису ведутся от имени администратора) 2. Ему добавляется роль "Сотрудник", для которой разрешено чтение сущности "Сотрудник". 3. Запросом RetrieveUserPrivilegesRequest пять раз с перерывом в 1 секунду (предыдущий разработчик: надо дождаться, пока сбросится кеш пользовательских данных - это делается ассинхронно) проверяем есть ли Privilege "prvReadNew_salesperson" - право на чтение сущности сотрудник (если так и не появится - будет ошибка) 4. Создаем Сотрудника, которому в качестве владельца указан новый пользователь. Вот на шаге 4-то и получаю Server was unable to process request. 0x80042f09 SecLib::CheckPrivilege failed. Returned hr = -2147209463, User: 320131da-38c9-e011-b11a-001cc458db68 Platform т.е. пишет что у пользователя нет никаких ролей и соответствующих привилегий (0x80042f09). Через некоторое время набираются новые пользователи для обработки + к ним добавляются те, на которых возникли ошибки. Для тех кто с ошибкой создания Сотрудника повторяется шаг 4 и все проходит наура. Случается только на одном стенде из 4х. Что же может мешать? Видимо проверка наличия prvReadNew_salesperson недостаточна. Последний раз редактировалось horse315; 19.08.2011 в 16:07. |
|
19.08.2011, 16:30 | #2 |
Чайный пьяница
|
Необходимы также права на создание записи и скорее всего Assign.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
22.08.2011, 09:02 | #3 |
Участник
|
Вызовы к сервису производятся от имени сисадмина, у него конечно же есть эти права.
В сообщении об ошибке userid это id как раз того нового пользователя, так что речь 100% идет о правах нового пользователя. Настораживает то что баг не постоянный. Я вот грешу на процессы, протекающие в БД. |
|
22.08.2011, 09:42 | #4 |
Чайный пьяница
|
Цитата:
Сообщение от horse315
Вызовы к сервису производятся от имени сисадмина, у него конечно же есть эти права.
В сообщении об ошибке userid это id как раз того нового пользователя, так что речь 100% идет о правах нового пользователя. Настораживает то что баг не постоянный. Я вот грешу на процессы, протекающие в БД.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
22.08.2011, 10:35 | #5 |
Участник
|
Цитата:
Непостоянство бага склонил к бд, т.к. на тестовых стендах, на которых не воспроизводится (кстати права в первую очередь проверял - везде одинаковые) пользователей заведено десятки, а на сервере, на котором ошибка происходит их тысячи. * покурил профайлер и гугл ничего не видно... Наверно на этой неделе просто сделаю в цикле с задержкой в секунду (как это сделано в шаге 3 с привилегиями) и перенесу добавление владельца записи из запроса create new_salesperson в отдельный запрос assign, посмотрю, как пойдут дела и с какой попытки он создастся. Последний раз редактировалось horse315; 22.08.2011 в 10:41. |
|
|
|