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 12.12.2012, 09:22   #1  
ma-lex is offline
ma-lex
Участник
 
9 / 10 (1) +
Join Date: 20.07.2012
Плавающая ошибка при выполнении консольного приложения
Доброе время суток уважаемые форумчане. Обращаюсь к Вам с такой проблемой. Раз в сутки выполняется консольное приложение, которое обновляет данные в CRM (2011). Код примерно такой:
X++:
ClientCredentials credentials = new ClientCredentials();
credentials.Windows.ClientCredential = System.Net.CredentialCache.DefaultNetworkCredentials;
Uri uri = new Uri("http://localhost:5555/rbrcrm/XRMServices/2011/Organization.svc");
OrganizationServiceProxy proxy = new OrganizationServiceProxy(uri, null, credentials, null);
// This statement is required to enable early-bound type support.
proxy.ServiceConfiguration.CurrentServiceEndpoint.Behaviors.Add(new ProxyTypesBehavior());
IOrganizationService service = (IOrganizationService)proxy;
...
Entity vCon = new Entity("contact");
...
service.Update(vCon);
...
service.Update(vCon) - выполняется в цикле.

Приложение обычно выполняется около 3х часов. Примерно в 70% программа вылетает с ошибкой, спустя значительное время после выполнения, на строке service.Update(vCon);
Причем, судя по логам, программа пытается выполнить эту строчку минут 30-40, потом выходит сообщение об ошибке:

X++:
System.ServiceModel.Security.MessageSecurityException:            .     .  . ---> System.ServiceModel.FaultException:        .    .
 ---      ---

Server stack trace: 
    System.ServiceModel.Channels.SecurityChannelFactory`1.SecurityRequestChannel.ProcessReply(Message reply, SecurityProtocolCorrelationState correlationState, TimeSpan timeout)
    System.ServiceModel.Channels.SecurityChannelFactory`1.SecurityRequestChannel.Request(Message message, TimeSpan timeout)
    System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
    System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
    System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)

Exception rethrown at [0]: 
    System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
    System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
    Microsoft.Xrm.Sdk.IOrganizationService.Update(Entity entity)
    Microsoft.Xrm.Sdk.Client.OrganizationServiceProxy.UpdateCore(Entity entity)
Есть дни, когда весь процесс проходит без ошибок (около 30%).
Прошу помощи в решении проблемы.
Old 12.12.2012, 10:28   #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
Quote:
Originally Posted by ma-lex View Post
service.Update(vCon) - выполняется в цикле.

Приложение обычно выполняется около 3х часов.
Встречался давно с такой ошибкой. еще в 4 помоему. Если мне не изменяет память она была связана с большим количеством запросов выполняемых за одну "сессию" (или что-то вроде того). Решалась либо таймаутом после ~1000 запросов, либо прекращением работы программы после ~1000 запросов.
__________________
Крокодил, крокожу и буду крокодить.
Человек человеку - волк , а зомби зомби - зомби.
Экстремал и буду экстремать!
Блога
Old 12.12.2012, 10:37   #3  
g.Naukovych is offline
g.Naukovych
Участник
MCBMSS
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
405 / 130 (5) +++++
Join Date: 23.03.2011
А что при этом пишется в трейс CRM?
__________________
Мой блог https://procrm.tv
Old 12.12.2012, 10:46   #4  
ma-lex is offline
ma-lex
Участник
 
9 / 10 (1) +
Join Date: 20.07.2012
Quote:
Originally Posted by g.Naukovych View Post
А что при этом пишется в трейс CRM?
Трейс пока не включал. Попробую, отпишусь.
Old 12.12.2012, 10:48   #5  
ma-lex is offline
ma-lex
Участник
 
9 / 10 (1) +
Join Date: 20.07.2012
Quote:
Originally Posted by slivka_83 View Post
Встречался давно с такой ошибкой. еще в 4 помоему. Если мне не изменяет память она была связана с большим количеством запросов выполняемых за одну "сессию" (или что-то вроде того). Решалась либо таймаутом после ~1000 запросов, либо прекращением работы программы после ~1000 запросов.
Странно, что не всегда такая ошибка получается. По идее это не одна транзакция и каждая запись обновляется "сразу же".
Old 12.12.2012, 12:27   #6  
Konstantin Katsovich is offline
Konstantin Katsovich
Участник
Konstantin Katsovich's Avatar
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
243 / 57 (2) ++++
Join Date: 22.10.2008
Location: Israel
Quote:
Originally Posted by ma-lex View Post
Доброе время суток уважаемые форумчане. Обращаюсь к Вам с такой проблемой. Раз в сутки выполняется консольное приложение, которое обновляет данные в CRM (2011). Код примерно такой:
X++:
ClientCredentials credentials = new ClientCredentials();
credentials.Windows.ClientCredential = System.Net.CredentialCache.DefaultNetworkCredentials;
Uri uri = new Uri("http://localhost:5555/rbrcrm/XRMServices/2011/Organization.svc");
OrganizationServiceProxy proxy = new OrganizationServiceProxy(uri, null, credentials, null);
// This statement is required to enable early-bound type support.
proxy.ServiceConfiguration.CurrentServiceEndpoint.Behaviors.Add(new ProxyTypesBehavior());
IOrganizationService service = (IOrganizationService)proxy;
...
Entity vCon = new Entity("contact");
...
service.Update(vCon);
...
service.Update(vCon) - выполняется в цикле.

Приложение обычно выполняется около 3х часов. Примерно в 70% программа вылетает с ошибкой, спустя значительное время после выполнения, на строке service.Update(vCon);
Причем, судя по логам, программа пытается выполнить эту строчку минут 30-40, потом выходит сообщение об ошибке:

X++:
System.ServiceModel.Security.MessageSecurityException:            .     .  . ---> System.ServiceModel.FaultException:        .    .
 ---      ---

Server stack trace: 
    System.ServiceModel.Channels.SecurityChannelFactory`1.SecurityRequestChannel.ProcessReply(Message reply, SecurityProtocolCorrelationState correlationState, TimeSpan timeout)
    System.ServiceModel.Channels.SecurityChannelFactory`1.SecurityRequestChannel.Request(Message message, TimeSpan timeout)
    System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
    System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
    System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)

Exception rethrown at [0]: 
    System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
    System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
    Microsoft.Xrm.Sdk.IOrganizationService.Update(Entity entity)
    Microsoft.Xrm.Sdk.Client.OrganizationServiceProxy.UpdateCore(Entity entity)
Есть дни, когда весь процесс проходит без ошибок (около 30%).
Прошу помощи в решении проблемы.

Для начала вам нужно посмотреть внутреннее исключение как написано в сообщение.
От неё и надо отталкиваться.

У меня тоже появляется похожая ошибка, в Windows Services.
Code:
An unsecured or incorrectly secured fault was received from the other party. See the inner FaultException for the fault code and detail.

Server stack trace: 
   at System.ServiceModel.Channels.SecurityChannelFactory`1.SecurityRequestChannel.ProcessReply(Message reply, SecurityProtocolCorrelationState correlationState, TimeSpan timeout)
   at System.ServiceModel.Channels.SecurityChannelFactory`1.SecurityRequestChannel.Request(Message message, TimeSpan timeout)
   at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
   at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
   at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)
Моё внутренне исключение такое.
Code:
Inner Exception:
The security context token is expired or is not valid. The message was not processed.
А что у Вас?

В трайсе CRM я ни чего не нашел на эту тему.
Судя по стэк трейсу эта ошибка возникает еще до попадания в CRM. (то есть в .net)

Опытных путем было установлено, что у меня это происходит только в том случае, если я начинаю использовать больше одного процесса в App Pool.
Когда ставишь один процесс ошибка пропадает. так и живу пока.


Так же мной было опробовано два решения, но для меня безрезультатно.
http://rajeevpentyala.wordpress.com/...local_machine/

http://pragmatismismymethodology.blo...exception.html

Удачи.
__________________
Читайте SDK!!!
Old 12.12.2012, 12:40   #7  
Likefire is offline
Likefire
Заноза в заднице
Likefire's Avatar
MCBMSS
Лучший по профессии 2009
 
547 / 50 (3) ++++
Join Date: 22.10.2007
Location: Москва
Blog Entries: 1
Вопрос по проблеме: от чего зависит количество шагов цикла, в котором выполняется Update? У нас была схожая ошибка и нам удалось установить зависимость количества шагов от появления ошибки.
На самом деле, есть зависимость объема передаваемых данных за одну сессию: чем меньше атрибутов обновлялось в ходе Update, тем больше шагов цикла проходило. Решение проблемы могло быть такое: все записи, которые надо апдейтить, были выгружены в массив и при проходе по массиву задавалось некое значение количества апдейтов, после которого происходило отключение сессии веб-сервиса и подключение вновь, после чего цикл возобновлялся с того элемента, на котором произошла остановка.
__________________
Лень мудрого человека - это необходимое средство нейтрализации кипучей активности руководящих им дураков!
Old 12.12.2012, 12:45   #8  
Konstantin Katsovich is offline
Konstantin Katsovich
Участник
Konstantin Katsovich's Avatar
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
243 / 57 (2) ++++
Join Date: 22.10.2008
Location: Israel
Quote:
Originally Posted by Likefire View Post
Вопрос по проблеме: от чего зависит количество шагов цикла, в котором выполняется Update? У нас была схожая ошибка и нам удалось установить зависимость количества шагов от появления ошибки.
На самом деле, есть зависимость объема передаваемых данных за одну сессию: чем меньше атрибутов обновлялось в ходе Update, тем больше шагов цикла проходило. Решение проблемы могло быть такое: все записи, которые надо апдейтить, были выгружены в массив и при проходе по массиву задавалось некое значение количества апдейтов, после которого происходило отключение сессии веб-сервиса и подключение вновь, после чего цикл возобновлялся с того элемента, на котором произошла остановка.
Я как то попытался объяснить причины здесь
__________________
Читайте SDK!!!
Old 12.12.2012, 12:50   #9  
ma-lex is offline
ma-lex
Участник
 
9 / 10 (1) +
Join Date: 20.07.2012
Konstantin Katsovich,
Да, внутреннее исключение именно такое.
Попробую App Pool и решения по ссылкам. Не нашел каким образом менять параметр negotiateServiceCredential.
Old 12.12.2012, 12:56   #10  
ma-lex is offline
ma-lex
Участник
 
9 / 10 (1) +
Join Date: 20.07.2012
Quote:
Originally Posted by Likefire View Post
Вопрос по проблеме: от чего зависит количество шагов цикла, в котором выполняется Update? У нас была схожая ошибка и нам удалось установить зависимость количества шагов от появления ошибки.
На самом деле, есть зависимость объема передаваемых данных за одну сессию: чем меньше атрибутов обновлялось в ходе Update, тем больше шагов цикла проходило. Решение проблемы могло быть такое: все записи, которые надо апдейтить, были выгружены в массив и при проходе по массиву задавалось некое значение количества апдейтов, после которого происходило отключение сессии веб-сервиса и подключение вновь, после чего цикл возобновлялся с того элемента, на котором произошла остановка.
Количество шагов до возникновения проблемы каждую ночь совершенно разное (38 тыс, 80 тыс, 180 тыс.....). На самом деле это несколько циклов по нескольким сущностям и если в промежутки между ними делать отключение сессии...?
Old 12.12.2012, 13:07   #11  
Konstantin Katsovich is offline
Konstantin Katsovich
Участник
Konstantin Katsovich's Avatar
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
243 / 57 (2) ++++
Join Date: 22.10.2008
Location: Israel
Quote:
Originally Posted by ma-lex View Post
Konstantin Katsovich,
Да, внутреннее исключение именно такое.
Попробую App Pool и решения по ссылкам. Не нашел каким образом менять параметр negotiateServiceCredential.
Вспомнил

Я так и не до проверил это решение. по причине не нахождения в сервисе CRM этого проперти.

Оно существует только в WSHttpBinding, а CRM используется CustomBindings.

Если что-то накопаете буду рад.
__________________
Читайте SDK!!!
Old 29.01.2013, 09:22   #12  
webmaster is offline
webmaster
Участник
 
19 / 10 (1) +
Join Date: 28.06.2011
Location: Новосибирск
Quote:
Originally Posted by Konstantin Katsovich View Post
Вспомнил

Я так и не до проверил это решение. по причине не нахождения в сервисе CRM этого проперти.

Оно существует только в WSHttpBinding, а CRM используется CustomBindings.

Если что-то накопаете буду рад.
Справился с такой проблемой написанием функции переподключения к сервису по таймеру.
X++:
        public void CheckAuth()
        {
            if (DateTime.Compare(DateTime.Now, consoleStartTime.AddMinutes(counter * 7)) > 0) { _serviceProxy.Authenticate(); counter++; }
        }
Вызываю эту функцию перед выполнением _serviceProxy.Update(something)
В итоге, моё консольное приложение отваливается в среднем один раз в месяц.
__________________
CRM 5.0
 

Similar Threads
Thread Thread Starter Forum Replies Last Post
Ошибка создания продукта сделки при выполнении плагина. drongo Dynamics CRM: Разработка 5 12.10.2012 14:27
Ошибка открытия приложения у пользователей Camena Dynamics CRM: Администрирование 11 30.08.2012 15:20
Ошибка при выполнении бизнес-процесса "Не удалось загрузить сборку подключаемого модуля" focus Dynamics CRM: Функционал 13 29.09.2010 11:45
Ошибка открытия приложения ms crm Camena Dynamics CRM: Администрирование 3 04.06.2010 18:57
Ошибка авторизации при выполнении запроса Dark_Angel Dynamics CRM: Разработка 0 03.09.2009 17:23

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 15:40.
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Contacts E-mail, Advertising.