CRM 2015 на предпосылке: ошибка профилировщика плагинов
Примечание: мы не можем использовать удаленный отладчик bcoz с ограничениями.
Я использовал профилировщик плагинов в прошлом, но никогда не сталкивался с этой ошибкой или какими-либо проблемами.
Я попробовал некоторые решения Эйлин, но не повезло. ( http://missdynamicscrm.blogspot.com/2014/05/debug-crm-2013-using-plugin-profiler.html)
Я получаю эту ошибку ниже в моем новом назначении. Кто-нибудь знает, что происходит?
Unhandled Exception: System.ServiceModel.FaultException`1[[Microsoft.Xrm.Sdk.OrganizationServiceFault, Microsoft.Xrm.Sdk, Version=7.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]: Unexpected Exception in the Plug-in ProfilerDetail:
<OrganizationServiceFault xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.microsoft.com/xrm/2011/Contracts">
<ErrorCode>-2147220891</ErrorCode>
<ErrorDetails xmlns:d2p1="http://schemas.datacontract.org/2004/07/System.Collections.Generic">
<KeyValuePairOfstringanyType>
<d2p1:key>OperationStatus</d2p1:key>
<d2p1:value xmlns:d4p1="http://www.w3.org/2001/XMLSchema" i:type="d4p1:string">3</d2p1:value>
</KeyValuePairOfstringanyType>
<KeyValuePairOfstringanyType>
<d2p1:key>SubErrorCode</d2p1:key>
<d2p1:value xmlns:d4p1="http://www.w3.org/2001/XMLSchema" i:type="d4p1:string">-2146233088</d2p1:value>
</KeyValuePairOfstringanyType>
</ErrorDetails>
<Message>Unexpected Exception in the Plug-in Profiler</Message>
<Timestamp>2017-04-25T16:46:17.1055295Z</Timestamp>
<InnerFault i:nil="true" />
<TraceText>
[PluginProfiler.Plugins: PluginProfiler.Plugins.ProfilerPlugin]
[fd941d99-d629-e711-810c-005056ab45d6: ABCcorp.Xrm.MyProject.Plugins.MyPlugin: Pre Update of new_myentity with Pre Image (Profiler)]
An exception occurred during the initialization of the Plug-in Profiler.
Unhandled Exception: System.ServiceModel.CommunicationObjectFaultedException: The communication object, System.ServiceModel.Channels.ServiceChannel, cannot be used for communication because it is in the Faulted state.
Server stack trace:
at System.ServiceModel.Channels.CommunicationObject.ThrowIfDisposedOrImmutable()
at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
Exception rethrown at [0]:
at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
at System.ServiceModel.ICommunicationObject.Open()
at Microsoft.Crm.Sandbox.SandboxClientBase`1.Open()
at Microsoft.Crm.Sandbox.SandboxClientBase`1.get_Proxy()
at Microsoft.Crm.Sandbox.SandboxOrganizationService.ProcessException(Exception e, SandboxSdkClient client)
at Microsoft.Crm.Sandbox.SandboxOrganizationService.Execute(String operation, Byte[] serializedRequest)
at System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Object[]& outArgs)
at System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage msg)
Exception rethrown at [1]:
at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
at Microsoft.Crm.Sandbox.ISandboxOrganizationService.Execute(String operation, Byte[] serializedRequest)
at Microsoft.Crm.Sandbox.SandboxOrganizationServiceWrapper.ExecuteInternal(OrganizationRequest request)
at Microsoft.Crm.Sandbox.SandboxOrganizationServiceWrapper.RetrieveInternal(String entityName, Guid id, ColumnSet columnSet)
at Microsoft.Crm.Sandbox.SandboxOrganizationServiceWrapper.Retrieve(String entityName, Guid entityId, ColumnSet columnSet)
at PluginProfiler.Plugins.PluginLoaderUtility.RefreshAssembly(IOrganizationService service, ProfilerConfiguration config, PluginInitializationContext context)
at PluginProfiler.Plugins.PluginLoaderUtility.RefreshPluginInitializationContext(IOrganizationServiceFactory factory, ProfilerConfiguration config, PluginInitializationContext currentContext)
at PluginProfiler.Plugins.ProfilerBase`1.InitializeProfiler(Dictionary`2 services, T operationContext, ProfilerPluginContext& context)
</TraceText>
</OrganizationServiceFault>
2 ответа
Пара мыслей...
Из какой версии SDK вы используете плагин Profiler? Это соответствует версии CRM?
Я обычно хотел бы, чтобы мой код плагина также был доступен через консольное приложение, чтобы я мог отлаживать и проходить по нему без профилирования, удаленной отладки и т. Д.
В этой статье показано, как начать работу с консольным приложением, которое подключается к CRM: https://msdn.microsoft.com/en-us/library/jj602970.aspx
Моя типичная архитектура состоит в том, чтобы иметь общий проект Visual Studio, который содержит всю бизнес-логику, а затем проект плагина и консольный проект, каждый из которых получает целевую запись и передает ее в общий проект.
Например: папка visual studio, содержащая типичные проекты плагинов
Похоже, ваш сервис обработки песочницы находится в неисправном состоянии. Я бы перезапустил этот процесс, поскольку это обычно решает проблему. Эта служба должна находиться в том же окне, что и служба асинхронной обработки, но, я думаю, она может находиться в другом месте.
В любом случае найдите и перезапустите "Службу обработки песочницы Microsoft Dynamics CRM"
Если это не сработает, перезагрузите окно, на котором оно находится.
Это обычно решает проблему.