AXForum  
Go Back   AXForum > Microsoft Dynamics CRM > Dynamics CRM: Разработка
All
Forgotten Your Password?
Register Forum Rules FAQ Members List Today's Posts Search

 
 
Thread Tools Search this Thread Display Modes
Old 13.12.2012, 13:14   #1  
Violette is offline
Violette
Участник
Violette's Avatar
 
18 / 10 (1) +
Join Date: 06.11.2012
Location: Москва
Почему плагин может отваливаться?
Повесила плагин на Update сущности.

При указании синхронного Execution Mode вылетал по тайм-ауту.

Не зная, как именно устроены "внутренности" CRM'а, предположила, что при попытке изменения сущности во время её же синхронного post-update возникает нечто вроде взаимо-блокировки.

Поменяла на режим на асинхронный - (о, чудо!) заработало!

Но ненадолго.
На следующий день плагин вдруг вообще перестал отрабатывать.
В Romote Debugger'е не ловится, и даже если проброс исключения в самом начале вставить - никаких признаков жизни не подаёт.

При этом если изменить режим на синхронный - работает (но всё с той же проблемой тайм-аута).

Что могло такого произойти, что он вдруг вот так отвалился?
Old 13.12.2012, 13:56   #2  
slivka_83 is offline
slivka_83
Консультант-джедай
slivka_83's Avatar
MCBMSS
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
1,683 / 374 (16) ++++++
Join Date: 18.12.2008
Location: default city
А у плагина много работы?
__________________
Крокодил, крокожу и буду крокодить.
Человек человеку - волк , а зомби зомби - зомби.
Экстремал и буду экстремать!
Блога
Old 13.12.2012, 14:50   #3  
a33ik is offline
a33ik
Чайный пьяница
a33ik's Avatar
MCP
MCBMSS
Злыдни
Соотечественники
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,243 / 896 (36) +++++++
Join Date: 02.07.2008
Location: Greenville, SC
Код плагина покажите, пожалуйста + как вы шаг регистрируете.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
Old 13.12.2012, 15:21   #4  
Violette is offline
Violette
Участник
Violette's Avatar
 
18 / 10 (1) +
Join Date: 06.11.2012
Location: Москва
Quote:
Originally Posted by slivka_83 View Post
А у плагина много работы?
Он пересчитывает график наполнения плановых платежей по акцептированным фактическим.

Делает это, дёргая метод вин-сервиса.
Фишка в том, что он таки работает, но через раз.

Сепйчас вот, после перезагрузки сервера, снова работают, но только при Update и Create.

При Delete молча не отрабатывает.
Настройки те же, что и в Update. Раньше работал. Теперь не работает даже при переригистрации шага.
Old 13.12.2012, 15:32   #5  
a33ik is offline
a33ik
Чайный пьяница
a33ik's Avatar
MCP
MCBMSS
Злыдни
Соотечественники
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,243 / 896 (36) +++++++
Join Date: 02.07.2008
Location: Greenville, SC
Quote:
Originally Posted by Violette View Post
Делает это, дёргая метод вин-сервиса.
Может Веб сервис имеете ввиду?
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
Old 13.12.2012, 15:41   #6  
g.Naukovych is offline
g.Naukovych
Участник
MCBMSS
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
405 / 130 (5) +++++
Join Date: 23.03.2011
1. У Вас видимо действительно блокировка. У Вас происходит получение сущности, для которой сейчас плагин работает?
В 2011 СРМ пост шаг находится в транзакции.
2. Чтобы подключиться удаленным отладчиком к асинхронному плагину необходимо подключаться к процессу CrmAsyncService.exe
3. Вместо Exception пишите лог в файл. Только дайте доступ к той папке, в которую писать будете.
4. Settings->System Jobs там показываются статусы асинхронных операций в том числе и асинхронных плагинов. Ваш плагин там есть?
__________________
Мой блог https://procrm.tv

Last edited by g.Naukovych; 13.12.2012 at 15:49.
This post has been rated by: Violette (1).
Old 13.12.2012, 15:44   #7  
Violette is offline
Violette
Участник
Violette's Avatar
 
18 / 10 (1) +
Join Date: 06.11.2012
Location: Москва
Quote:
Originally Posted by a33ik View Post
Код плагина покажите, пожалуйста + как вы шаг регистрируете.
Ну, код плагина получает id платежа и передаёт его в вызов сервиса.
Дело не в нём, скорее всего.

Вот пример настроек в Шаге неработающего Delete.
В шаге Update всё то же самое, а он работает почему-то...
Click image for larger version

Name:	ddd.gif
Views:	599
Size:	43.0 KB
ID:	7982
Old 13.12.2012, 15:49   #8  
Violette is offline
Violette
Участник
Violette's Avatar
 
18 / 10 (1) +
Join Date: 06.11.2012
Location: Москва
Quote:
Originally Posted by a33ik View Post
Может Веб сервис имеете ввиду?
Нет. Именно вин-сервис.
Этот же сервис работает при акцептировании самих платежей, и в него же я добавила функционал для актуализации графика погашения плановых.

Сам сервис работает.

Но почему плагин отрабатывает через раз?
Old 13.12.2012, 15:50   #9  
a33ik is offline
a33ik
Чайный пьяница
a33ik's Avatar
MCP
MCBMSS
Злыдни
Соотечественники
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,243 / 896 (36) +++++++
Join Date: 02.07.2008
Location: Greenville, SC
А сам эндпоинт, который вы вызываете сам по себе долго отрабатывает?
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
Old 13.12.2012, 15:53   #10  
Violette is offline
Violette
Участник
Violette's Avatar
 
18 / 10 (1) +
Join Date: 06.11.2012
Location: Москва
Quote:
Originally Posted by a33ik View Post
А сам эндпоинт, который вы вызываете сам по себе долго отрабатывает?
Да нет, недолго.
Секунд 5-6.
Old 13.12.2012, 16:01   #11  
Violette is offline
Violette
Участник
Violette's Avatar
 
18 / 10 (1) +
Join Date: 06.11.2012
Location: Москва
Quote:
Originally Posted by g.Naukovych View Post
1. У Вас видимо действительно блокировка. У Вас происходит получение сущности, для которой сейчас плагин работает?
В 2011 СРМ пост шаг находится в транзакции.
2. Чтобы подключиться удаленным отладчиком к асинхронному плагину необходимо подключаться к процессу CrmAsyncService.exe
3. Вместо Exception пишите лог в файл. Только дайте доступ к той папке, в которую писать будете.
4. Settings->System Jobs там показываются статусы асинхронных операций в том числе и асинхронных плагинов. Ваш плагин там есть?
Логгирование ведётся в любом случае, но плагин вообще не отрабатывает.
Не вызывается специальное тестовое исключение
throw new Exception("Работает, блин!");

Аттачусь к w3wp.exe (что за зверь - не знаю. по инструкции рекомендован). Но он действительно схватывается только в синхронных плагинах.

CrmAsyncService.exe в списке процессов что-то не видно.
Old 13.12.2012, 16:04   #12  
Taker1796 is offline
Taker1796
Участник
Taker1796's Avatar
 
112 / 11 (1) +
Join Date: 22.04.2012
Quote:
Originally Posted by Violette View Post
Ну, код плагина получает id платежа и передаёт его в вызов сервиса.
Дело не в нём, скорее всего.

Вот пример настроек в Шаге неработающего Delete.
В шаге Update всё то же самое, а он работает почему-то...
Attachment 7982
Delete работает с EntityReference, возможно у вас есть проверка if(context.InputParameters["Target"] is Entity) - данный код не сработает на Delete

Ну это просто как вариант, мало ли)
This post has been rated by: Violette (1).
Old 13.12.2012, 16:04   #13  
g.Naukovych is offline
g.Naukovych
Участник
MCBMSS
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
405 / 130 (5) +++++
Join Date: 23.03.2011
w3wp процесc IIS

Quote:
Settings->System Jobs там показываются статусы асинхронных операций в том числе и асинхронных плагинов. Ваш плагин там есть?
Это смотрели?

Асинхронус сервис вообще работает?
служба виндовс
Microsoft Dynamics CRM Asynchronous Processing Service
Microsoft Dynamics CRM Asynchronous Processing Service (maintenance)
__________________
Мой блог https://procrm.tv
Old 13.12.2012, 16:10   #14  
a33ik is offline
a33ik
Чайный пьяница
a33ik's Avatar
MCP
MCBMSS
Злыдни
Соотечественники
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,243 / 896 (36) +++++++
Join Date: 02.07.2008
Location: Greenville, SC
Quote:
Originally Posted by Violette View Post
CrmAsyncService.exe в списке процессов что-то не видно.
Проверьте, что у вас при аттаче выделены указанные галочи, так же на всякий случай обвёл процесс, к которому нужно атачиться:

Click image for larger version

Name:	AttachStudio.png
Views:	359
Size:	19.4 KB
ID:	7983

По поводу почему его не видно в процессах - проверьте в оснастке, что асинхронный сервис запущен:

Click image for larger version

Name:	AsyncService.png
Views:	274
Size:	108.2 KB
ID:	7984
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
This post has been rated by: Violette (1).
Old 13.12.2012, 16:24   #15  
Violette is offline
Violette
Участник
Violette's Avatar
 
18 / 10 (1) +
Join Date: 06.11.2012
Location: Москва
Quote:
Originally Posted by Taker1796 View Post
Delete работает с EntityReference, возможно у вас есть проверка if(context.InputParameters["Target"] is Entity) - данный код не сработает на Delete

Ну это просто как вариант, мало ли)
Мысль интересная, но в этом случае он всё-таки должен был выругаться:

public override void Execute(IServiceProvider serviceProvider)
{

//throw new Exception("Работает, блин!");

base.Execute(serviceProvider);
Microsoft.Xrm.Sdk.Entity target = (Microsoft.Xrm.Sdk.Entity)_currentContext.InputParameters["Target"];
string id = target.Attributes["new_paymentplanid"].ToString();

Guid gid = new Guid(id);

CallPaymentService(gid);
}
Old 13.12.2012, 16:35   #16  
g.Naukovych is offline
g.Naukovych
Участник
MCBMSS
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
405 / 130 (5) +++++
Join Date: 23.03.2011
Где хранится базовый класс, от которого плагин наследуется. в отдельной длл?
Если да, где хранится эта длл?
__________________
Мой блог https://procrm.tv
Old 13.12.2012, 16:40   #17  
Likefire is offline
Likefire
Заноза в заднице
Likefire's Avatar
MCBMSS
Лучший по профессии 2009
 
547 / 50 (3) ++++
Join Date: 22.10.2007
Location: Москва
Blog Entries: 1
AsyncService скорее всего...
Асинхронный сервис может и работает, но плохо. То есть в процессах Windows он может и запущен, но если там много блокировок - то очередь просто не продвигается. Потому и плагин асинхронный не отрабатывает.
На всякий случай загляните в модуль "настройки", где откройте список "Системные задания" и выберите представление "Заблокированные системные задания". Если у Вас там есть записи - то нужно выяснять причину блокировок, устранять её и тогда асинхронные процессы и плагины будут работать (до новой блокировки - неплохо бы утранить и причину возникновения блокировок, если таковые возникают).
__________________
Лень мудрого человека - это необходимое средство нейтрализации кипучей активности руководящих им дураков!

Last edited by Likefire; 13.12.2012 at 16:44.
Old 14.12.2012, 11:24   #18  
Violette is offline
Violette
Участник
Violette's Avatar
 
18 / 10 (1) +
Join Date: 06.11.2012
Location: Москва
Quote:
Originally Posted by g.Naukovych View Post
Где хранится базовый класс, от которого плагин наследуется. в отдельной длл?
Если да, где хранится эта длл?
Там солюшн со множеством классов-плагинов и сопутствубщих классов.
С этим всё в порядке.

Проблема была в том, что к w3wp.exe аттачилась и не могла отловить срабатывание асинхронного плагина.

Теперь всё в порядке благодаря коллективному разуму.
 

Similar Threads
Thread Thread Starter Forum Replies Last Post
CRM 4.0: Плагин на Assign не запускается из Workflow Ksani Dynamics CRM: Разработка 10 21.03.2012 12:39
Плагин Nvovka Dynamics CRM: Разработка 3 14.10.2011 23:46
Не срабатывает плагин Буденый Dynamics CRM: Разработка 11 14.02.2011 11:35
Плагин на изменение подразделения пользователя xmarina Dynamics CRM: Разработка 6 23.11.2010 15:04
Плагин на создании Заказа Krom Dynamics CRM: Разработка 4 04.08.2010 14:48

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Рейтинг@Mail.ru
All times are GMT +3. The time now is 22:38.
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Contacts E-mail, Advertising.