AXForum  
Вернуться   AXForum > Microsoft Dynamics CRM > Dynamics CRM: Разработка
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 09.08.2012, 14:05   #1  
probka is offline
probka
Участник
Аватар для probka
 
98 / 11 (1) +
Регистрация: 20.02.2012
Адрес: Ростов-на-Дону
CRM 4.0 Ошибка выполнения плагина
При попытке выполнения плагина возникает ошибка "Не удалось загрузить тип подключаемого модуля.", и плагин не выполняется. Подскажите, пожалуйста, каким образом можно отследить, в чем ошибка?
__________________
Так победим!

Старый 09.08.2012, 14:23   #2  
g.Naukovych is offline
g.Naukovych
Участник
MCBMSS
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
405 / 130 (5) +++++
Регистрация: 23.03.2011
1. Запустите Trace
2. Запустите Debug плагина.
3. Внутри себя плагин не использует никаких сторонних библиотек? только те что есть в SDK?
__________________
Мой блог https://procrm.tv
Старый 09.08.2012, 14:31   #3  
probka is offline
probka
Участник
Аватар для probka
 
98 / 11 (1) +
Регистрация: 20.02.2012
Адрес: Ростов-на-Дону
Я пыталась отследить ошибку в отладчике. Плагин даже не начинает выполняться.

3.
X++:
using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.Crm.Sdk;
using Microsoft.Crm.SdkTypeProxy;
__________________
Так победим!

Старый 09.08.2012, 15:14   #4  
a33ik is offline
a33ik
Чайный пьяница
Аватар для a33ik
MCP
MCBMSS
Злыдни
Соотечественники
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,243 / 896 (36) +++++++
Регистрация: 02.07.2008
Адрес: Greenville, SC
А вы сборку подписали (правой мыши на проекте в студии - Properties - Signing)?
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
Старый 09.08.2012, 15:15   #5  
g.Naukovych is offline
g.Naukovych
Участник
MCBMSS
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
405 / 130 (5) +++++
Регистрация: 23.03.2011
1. Что в Trace CRM?
2. Как самое простое прямо в начале ф-ии Execute напишите return. Если ошибки не будет, значит ошибка при выполнении плагина иначе ошибка установки.
__________________
Мой блог https://procrm.tv
Старый 09.08.2012, 15:16   #6  
g.Naukovych is offline
g.Naukovych
Участник
MCBMSS
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
405 / 130 (5) +++++
Регистрация: 23.03.2011
Цитата:
Сообщение от a33ik Посмотреть сообщение
А вы сборку подписали (правой мыши на проекте в студии - Properties - Signing)?
А разве можно неподписанную сборку установить?
__________________
Мой блог https://procrm.tv
Старый 09.08.2012, 15:16   #7  
probka is offline
probka
Участник
Аватар для probka
 
98 / 11 (1) +
Регистрация: 20.02.2012
Адрес: Ростов-на-Дону
Цитата:
Сообщение от a33ik Посмотреть сообщение
А вы сборку подписали (правой мыши на проекте в студии - Properties - Signing)?
Да, подписала.
__________________
Так победим!

Старый 09.08.2012, 15:16   #8  
a33ik is offline
a33ik
Чайный пьяница
Аватар для a33ik
MCP
MCBMSS
Злыдни
Соотечественники
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,243 / 896 (36) +++++++
Регистрация: 02.07.2008
Адрес: Greenville, SC
Цитата:
Сообщение от g.Naukovych Посмотреть сообщение
А разве можно неподписанную сборку установить?
В 4.0 - да.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
Старый 09.08.2012, 15:21   #9  
a33ik is offline
a33ik
Чайный пьяница
Аватар для a33ik
MCP
MCBMSS
Злыдни
Соотечественники
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,243 / 896 (36) +++++++
Регистрация: 02.07.2008
Адрес: Greenville, SC
Цитата:
Сообщение от probka Посмотреть сообщение
Да, подписала.
Для того, чтобы понимать что у вас в референсах using-ов маловато. Можете сделать скриншот подобный следующему:
Название: references.png
Просмотров: 1046

Размер: 7.3 Кб
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
Старый 09.08.2012, 15:28   #10  
probka is offline
probka
Участник
Аватар для probka
 
98 / 11 (1) +
Регистрация: 20.02.2012
Адрес: Ростов-на-Дону
__________________
Так победим!

Старый 09.08.2012, 15:32   #11  
probka is offline
probka
Участник
Аватар для probka
 
98 / 11 (1) +
Регистрация: 20.02.2012
Адрес: Ростов-на-Дону
Цитата:
Сообщение от g.Naukovych Посмотреть сообщение
1. Что в Trace CRM?
2. Как самое простое прямо в начале ф-ии Execute напишите return. Если ошибки не будет, значит ошибка при выполнении плагина иначе ошибка установки.
1. Я не знаю, что такое Trace CRM. Подскажите, пожалуйста.
2. Сделала так. Ошибка возникает, значит, это ошибка установки?
__________________
Так победим!

Старый 09.08.2012, 15:36   #12  
g.Naukovych is offline
g.Naukovych
Участник
MCBMSS
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
405 / 130 (5) +++++
Регистрация: 23.03.2011
В реестре
HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\MSCRM

создать параметр с именем TraceEnabled типом Dword и значением 1

Если параметр есть поставить значение 1

Рестартануть ИИС

В папке C:\Program Files\Microsoft Dynamics CRM\Trace появится файл, куда будет логироваться система. Выполните код. Получите ошибку и посмотрите что в файле этом будет.
__________________
Мой блог https://procrm.tv
Старый 09.08.2012, 15:49   #13  
a33ik is offline
a33ik
Чайный пьяница
Аватар для a33ik
MCP
MCBMSS
Злыдни
Соотечественники
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,243 / 896 (36) +++++++
Регистрация: 02.07.2008
Адрес: Greenville, SC
Код плагина дайте ещё на всякий случай, пожалуйста. Точнее больше интересует конструктор.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
Старый 09.08.2012, 15:52   #14  
probka is offline
probka
Участник
Аватар для probka
 
98 / 11 (1) +
Регистрация: 20.02.2012
Адрес: Ростов-на-Дону
Цитата:
Сообщение от a33ik Посмотреть сообщение
Код плагина дайте ещё на всякий случай, пожалуйста. Точнее больше интересует конструктор.
X++:
        public void Execute(IPluginExecutionContext context)
        {
            if (!(context.InputParameters.Contains("Target")) || !(context.InputParameters["Target"] is DynamicEntity))
                return;

            DynamicEntity _opportunity = (DynamicEntity)context.InputParameters["Target"];

            if (_opportunity.Name != EntityName.opportunity.ToString())
                    return;

            if (!_opportunity.Properties.Contains("new_status"))
                return;

            Picklist status = (Picklist)_opportunity["new_status"];

            if (status.Value.ToString() != "5")
                return;

            ICrmService crmService = context.CreateCrmService(true);

            DynamicEntity new_stop = new DynamicEntity("new_stop");

            Customer oppid = (Customer) _opportunity["opportunityid"];

            Lookup oppLookup = new Lookup();
            oppLookup.Value = oppid.Value;
            oppLookup.type = EntityName.opportunity.ToString();

            new_stop.Properties.Add(new LookupProperty("new_contractid", oppLookup));

            Guid stopGuid = crmService.Create(new_stop);

        }
__________________
Так победим!

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

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
Старый 10.08.2012, 10:32   #16  
probka is offline
probka
Участник
Аватар для probka
 
98 / 11 (1) +
Регистрация: 20.02.2012
Адрес: Ростов-на-Дону
Цитата:
Сообщение от a33ik Посмотреть сообщение
Это не конструктор, это реализация интерфейса IPlugin. У вас конструктор у класса есть?
Нет, конструктора класса нет.
__________________
Так победим!

Старый 10.08.2012, 11:10   #17  
g.Naukovych is offline
g.Naukovych
Участник
MCBMSS
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
405 / 130 (5) +++++
Регистрация: 23.03.2011
А трейс?
__________________
Мой блог https://procrm.tv
Старый 10.08.2012, 11:14   #18  
probka is offline
probka
Участник
Аватар для probka
 
98 / 11 (1) +
Регистрация: 20.02.2012
Адрес: Ростов-на-Дону
Трейс пишет вот что.

X++:
[2012-08-09 15:55:11.6] Process: w3wp |Organization:f9ea71b9-caaf-e111-91fc-00155da01115 |Thread:    8 |Category: Platform.Sdk |User: a3ee1258-cfaf-e111-91fc-00155da01115 |Level: Error | PluginStep.Execute
	at PluginStep.Execute(PipelineExecutionContext context)
	at Pipeline.Execute(PipelineExecutionContext context)
	at MessageProcessor.Execute(PipelineExecutionContext context)
	at InternalMessageDispatcher.Execute(PipelineExecutionContext context)
	at ExternalMessageDispatcher.Execute(String messageName, Int32 primaryObjectTypeCode, Int32 secondaryObjectTypeCode, PropertyBag fields, CorrelationToken correlationToken, CallerOriginToken originToken, UserAuth userAuth, Guid callerId)
	at RequestBase.Process(Int32 primaryObjectTypeCode, Int32 secondaryObjectTypeCode, CorrelationToken correlationToken, CallerOriginToken originToken, UserAuth userAuth, Guid callerId)
	at RequestBase.Process(CorrelationToken correlationToken, CallerOriginToken originToken, UserAuth userAuth, Guid callerId)
	at CrmServiceInternal.Execute(RequestBase request, CorrelationToken correlationToken, CallerOriginToken originToken, UserAuth userAuth, Guid callerId)
	at InProcessCrmService.Execute(Object request)
	at PlatformCommand.ExecuteInternal()
	at UpdateCommand.Execute()
	at EntityProxy.Update(Boolean performDuplicateCheck)
	at EntityProxy.UpdateAndRetrieve(String columnSet, Boolean performDuplicateCheck)
	at AppForm.RaiseDataEvent(FormEventId eventId)
	at EndUserForm.Initialize(Entity entity)
	at CustomizableForm.Execute(Entity entity, String formType)
	at OpportunityDetailPage.ConfigureForm()
	at AppUIPage.OnPreRender(EventArgs e)
	at Control.PreRenderRecursiveInternal()
	at Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
	at Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
	at Page.ProcessRequest()
	at Page.ProcessRequest(HttpContext context)
	at alibra_sfa_opps_edit_aspx.ProcessRequest(HttpContext context)
	at CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
	at HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
	at ApplicationStepManager.ResumeSteps(Exception error)
	at HttpApplication.System.Web.IHttpAsyncHandler.BeginProcessRequest(HttpContext context, AsyncCallback cb, Object extraData)
	at HttpRuntime.ProcessRequestInternal(HttpWorkerRequest wr)
	at HttpRuntime.ProcessRequestNoDemand(HttpWorkerRequest wr)
	at ISAPIRuntime.ProcessRequest(IntPtr ecb, Int32 iWRType)
>Web Service Plug-in failed in SdkMessageProcessingStepId: {E0F8EB2A-01D9-DE11-910D-0026181D2843}; EntityName: opportunity; Stage: 50; MessageName: Update; AssemblyName: Softline.Runov.Apps.Plugins.PostUpdateOpportunity, Softline.Runov.Apps.Plugins, Version=1.0.0.0, Culture=neutral, PublicKeyToken=6ef963d4fac9af6a; ClassName: Softline.Runov.Apps.Plugins.PostUpdateOpportunity; Exception: Unhandled Exception: System.Security.SecurityException:   ,           .   : Security.
    System.Diagnostics.EventLog.FindSourceRegistration(String source, String machineName, Boolean readOnly)
    System.Diagnostics.EventLog.SourceExists(String source, String machineName)
    System.Diagnostics.EventLog.VerifyAndCreateSource(String sourceName, String currentMachineName)
    System.Diagnostics.EventLog.WriteEntry(String message, EventLogEntryType type, Int32 eventID, Int16 category, Byte[] rawData)
    System.Diagnostics.EventLog.WriteEntry(String message, EventLogEntryType type)
    Softline.MsCrm40.Sdk.EventLogWriter.WriteError(String error)
    Softline.MsCrm40.Sdk.EventLogWriter.WriteError(Exception ex)
    Softline.MsCrm40.Sdk.Logger.WriteError(Exception ex)
    Softline.Runov.Apps.Plugins.PostUpdateOpportunity.Execute(IPluginExecutionContext context)
    Microsoft.Crm.Extensibility.PluginStep.Execute(PipelineExecutionContext context)
.
[2012-08-09 15:55:11.6] Process: w3wp |Organization:f9ea71b9-caaf-e111-91fc-00155da01115 |Thread:    8 |Category: Application |User: 00000000-0000-0000-0000-000000000000 |Level: Error | ErrorInformation.LogError
	at ErrorInformation.LogError()
	at AppForm.HandleSaveEntityException(Exception exception, FormEventId eventType, String url)
	at AppForm.RaiseDataEvent(FormEventId eventId)
	at EndUserForm.Initialize(Entity entity)
	at CustomizableForm.Execute(Entity entity, String formType)
	at OpportunityDetailPage.ConfigureForm()
	at AppUIPage.OnPreRender(EventArgs e)
	at Control.PreRenderRecursiveInternal()
	at Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
	at Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
	at Page.ProcessRequest()
	at Page.ProcessRequest(HttpContext context)
	at alibra_sfa_opps_edit_aspx.ProcessRequest(HttpContext context)
	at CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
	at HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
	at ApplicationStepManager.ResumeSteps(Exception error)
	at HttpApplication.System.Web.IHttpAsyncHandler.BeginProcessRequest(HttpContext context, AsyncCallback cb, Object extraData)
	at HttpRuntime.ProcessRequestInternal(HttpWorkerRequest wr)
	at HttpRuntime.ProcessRequestNoDemand(HttpWorkerRequest wr)
	at ISAPIRuntime.ProcessRequest(IntPtr ecb, Int32 iWRType)
>MSCRM Error Report:
--------------------------------------------------------------------------------------------------------
Error:   ,           .   : Security.

Error Number: 0x80040265

Error Message:   ,           .   : Security.

Error Details:   ,           .   : Security.

Source File: Not available

Line Number: Not available

Request URL: http://srv-dcrm-01/alibra/sfa/opps/edit.aspx?id={59BD0852-5ECC-DF11-88B4-0026181D2843}

Stack Trace Info: [SecurityException:   ,           .   : Security.]
    System.Diagnostics.EventLog.FindSourceRegistration(String source, String machineName, Boolean readOnly)
    System.Diagnostics.EventLog.SourceExists(String source, String machineName)
    System.Diagnostics.EventLog.VerifyAndCreateSource(String sourceName, String currentMachineName)
    System.Diagnostics.EventLog.WriteEntry(String message, EventLogEntryType type, Int32 eventID, Int16 category, Byte[] rawData)
    System.Diagnostics.EventLog.WriteEntry(String message, EventLogEntryType type)
    Softline.MsCrm40.Sdk.EventLogWriter.WriteError(String error)
    Softline.MsCrm40.Sdk.EventLogWriter.WriteError(Exception ex)
    Softline.MsCrm40.Sdk.Logger.WriteError(Exception ex)
    Softline.Runov.Apps.Plugins.PostUpdateOpportunity.Execute(IPluginExecutionContext context)
    Microsoft.Crm.Extensibility.PluginStep.Execute(PipelineExecutionContext context)

[InvalidPluginExecutionException:   ,           .   : Security.]
    Microsoft.Crm.Extensibility.PluginStep.Execute(PipelineExecutionContext context)
    Microsoft.Crm.Extensibility.Pipeline.Execute(PipelineExecutionContext context)
    Microsoft.Crm.Extensibility.MessageProcessor.Execute(PipelineExecutionContext context)
    Microsoft.Crm.Extensibility.InternalMessageDispatcher.Execute(PipelineExecutionContext context)
    Microsoft.Crm.Extensibility.ExternalMessageDispatcher.Execute(String messageName, Int32 primaryObjectTypeCode, Int32 secondaryObjectTypeCode, PropertyBag fields, CorrelationToken correlationToken, CallerOriginToken originToken, UserAuth userAuth, Guid callerId)
    Microsoft.Crm.Sdk.RequestBase.Process(Int32 primaryObjectTypeCode, Int32 secondaryObjectTypeCode, CorrelationToken correlationToken, CallerOriginToken originToken, UserAuth userAuth, Guid callerId)
    Microsoft.Crm.Sdk.RequestBase.Process(CorrelationToken correlationToken, CallerOriginToken originToken, UserAuth userAuth, Guid callerId)
    Microsoft.Crm.Sdk.CrmServiceInternal.Execute(RequestBase request, CorrelationToken correlationToken, CallerOriginToken originToken, UserAuth userAuth, Guid callerId)
    Microsoft.Crm.Sdk.InProcessCrmService.Execute(Object request)
    Microsoft.Crm.Application.Platform.ServiceCommands.PlatformCommand.ExecuteInternal()
    Microsoft.Crm.Application.Platform.ServiceCommands.UpdateCommand.Execute()
    Microsoft.Crm.Application.Platform.EntityProxy.Update(Boolean performDuplicateCheck)
    Microsoft.Crm.Application.Platform.EntityProxy.UpdateAndRetrieve(String columnSet, Boolean performDuplicateCheck)
    Microsoft.Crm.Application.Forms.AppForm.RaiseDataEvent(FormEventId eventId)
__________________
Так победим!

Старый 10.08.2012, 11:59   #19  
a33ik is offline
a33ik
Чайный пьяница
Аватар для a33ik
MCP
MCBMSS
Злыдни
Соотечественники
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,243 / 896 (36) +++++++
Регистрация: 02.07.2008
Адрес: Greenville, SC
Итак. Что сказал лог.
Падает вот в таком классе Softline.Runov.Apps.Plugins.PostUpdateOpportunity.
Судя по всему это не ваше. Смотрите зарегистрирован ли этот плагин.

Что я насмотрел у вас в коде:

Код:
Customer oppid = (Customer) _opportunity["opportunityid"];
Такой каст не сработает, зато сработает такой:

Код:
Key oppid = (Key)_opportunity["opportunityid"];
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
CRM DE LA CREME! CRM 4.0 Disaster Recovery Blog bot Dynamics CRM: Blogs 2 26.02.2016 08:23
crminthefield: Podcast and Overview: Microsoft Dynamics CRM 2011 Update Rollup 7 Blog bot Dynamics CRM: Blogs 0 27.03.2012 02:11
crminthefield: Podcast and Overview: Microsoft Dynamics CRM 2011 Update Rollup 4 Blog bot Dynamics CRM: Blogs 0 24.09.2011 01:16
CRM DE LA CREME! Configuring Microsoft Dynamics CRM 4.0 for Internet-facing deployment Blog bot Dynamics CRM: Blogs 0 18.08.2009 11:05
Microsoft Dynamics CRM Team Blog: List Web Part for Microsoft Dynamics CRM 4.0 Deployment Scenarios Blog bot Dynamics CRM: Blogs 0 30.01.2009 22:05

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 07:54.