Я немного разбираюсь в ExecuteTransactionRequest. Это не то, что я когда-либо использовал, поэтому я очень быстро провел эксперимент, чтобы увидеть, как это работает. Однако при отправке запроса OrganizationService отбрасывает исключение FaultException (см. Ниже). Я считаю, что моя версия CRM не поддерживает этот OrganizationRequest. Хотя я уверен, что у меня есть правильные сборки и версия.FaultException при использовании ExecuteTransactionRequest (CRM 2015)
Может ли кто-нибудь пролить свет на то, что мне не хватает?
CRM Deployment Версия: 7.0.1.129
Организация Версия: 7.0.2.53
Microsoft.Xrm Ассамблеи Версия: 7.0.0.0 (Также случилось с 8.0.0.0)
Необработанное исключение типа «System.ServiceModel.FaultException» произошло в Microsoft.Xrm.Sdk.dll
Дополнительная информация: Форматировщик бросил исключение при попытке десериализовать сообщение: Был ошибка при попытке параметра десериализации http://schemas.microsoft.com/xrm/2011/Contracts/Services:request. Сообщение InnerException было «Ошибка в строке 1 позиция 451. Элемент 'http://schemas.microsoft.com/xrm/2011/Contracts/Services:request' содержит данные от типа, который отображается на имя 'http://schemas.microsoft.com/xrm/2011/Contracts:ExecuteTransactionRequest'. Deserializer не знает ни одного типа, который соответствует этому имени. Рассмотрите возможность изменения реализации метода ResolveName на вашем DataContractResolver, чтобы вернуть ненулевое значение для имени 'ExecuteTransactionRequest' и пространство имен 'http://schemas.microsoft.com/xrm/2011/Contracts'. '. Пожалуйста, см. InnerException для получения более подробной информации.
CrmConnection connection = CrmConnection.Parse(GetCrmConnectionString("unmanaged"));
IOrganizationService orgService = new OrganizationService(connection);
ExecuteTransactionRequest transactionRequest = new ExecuteTransactionRequest()
{
ReturnResponses = true,
Requests = new OrganizationRequestCollection()
};
Entity newContact = new Entity("contact");
newContact["firstname"] = "Stack";
newContact["lastname"] = "Overflow";
CreateRequest createRequest = new CreateRequest()
{
Target = newContact
};
transactionRequest.Requests.Add(createRequest);
ExecuteTransactionResponse transactionResponse = (ExecuteTransactionResponse)orgService.Execute(transactionRequest);
Спасибо за место. Это было просто потому, что я немного переработал код, чтобы сделать его более удобным для Stack и забыл добавить его обратно. Извините за путаницу! –
Итак, вы по-прежнему получаете сообщение об ошибке даже после добавления запроса на создание запроса на запрос запроса транзакции? – dynamicallyCRM
Да, к сожалению –