2016-12-04 6 views
0

Ich entwickelte eine Anwendung mit dem CRM 2015 SDK (v7.1.2). Ich möchte von ExecuteTransactionRequest 2 Anfragen für crm schicken, aber ich habe einen Fehler:Führen Sie mehrere Anfragen in Transaktionsfehler in crm 2015

The formatter threw an exception while trying to deserialize the message: There was an error while trying to deserialize parameter 
http://schemas.microsoft.com/xrm/2011/Contracts/Services:request. The 
InnerException message was 'Error in line 1 position 451. Element 
'http://schemas.microsoft.com/xrm/2011/Contracts/Services:request' 
contains data from a type that maps to the name 
'http://schemas.microsoft.com/xrm/2011/Contracts:ExecuteTransactionRequest'. 
The deserializer has no knowledge of any type that maps to this name. 
Consider changing the implementation of the ResolveName method on your 
DataContractResolver to return a non-null value for name 
'ExecuteTransactionRequest' and namespace 
'http://schemas.microsoft.com/xrm/2011/Contracts'.' 

this is my applicaion's picture

i diesen Link verwendet: https://msdn.microsoft.com/en-us/library/mt634414.aspx

mir bitte helfen !!!

+0

Bitte zeigen Sie mehr von Ihrem Code. Wir können nicht sehen, welche Entitäten Sie erstellen möchten, daher ist es für uns schwieriger zu helfen – jasonscript

+0

Können Sie dies in Fiddler sehen und sehen, was die Antwortnachricht tatsächlich enthält? Meine Vermutung, es ist eine HTML-Antwort keine gültige SOAP/XML-Antwort (wie erwartet). Das kann passieren, wenn der Server bestimmte Fehler wirft, hat eine URL-Problem, ein Authentifizierungsproblem, etc. – Nicknow

+0

Hallo jasonscript und Nicknow. Ich habe meine Antwort gefunden. – arioamir

Antwort

0

Siehe Abschnitt „Execute Nachrichten in einer einzigen Datenbank-Transaktion“ in: https://msdn.microsoft.com/en-us/library/gg328075(v=crm.7).aspx

Was Sie gefunden haben, ist, dass diese Nachricht in Ihrem Client-SDK ist, aber das bedeutet nicht, dass es auch auf dem Server ist. Sie haben SDK 7.1, aber auf dem Server haben Sie 7.0 - gehen Sie zu Ihrem CRm-Installationsverzeichnis (wahrscheinlich), gehen Sie zu Server/bin und überprüfen Sie die Version von Microsoft.Xrm.Sdk.dll. Es wird ungefähr 7.0.1 sein und es enthält diese Nachricht nicht. Ich bin der Meinung, dass die Online-Dokumentation von MS irreführend ist, weil sie diese Nachricht für CRM 2015 anzeigt, aber leider ist sie dort nicht verfügbar. Wie für die Transaktion können Sie dies tun, wie wir alle vor CRM 2015 Update 1 getan haben - mit CRM-Befehlsmuster. Erstelle eine Entity (rufe sie Command oder was auch immer) und mache ein Plugin, das auf Create läuft (zum Beispiel kann es viele Ansätze geben, aber das ist das Einfachste).

Alles, was Sie in den Stufen 20 und 40 im Plugin tun, wird in der Transaktion ausgeführt, so dass Sie diese Logik in dieses Plugin einfügen können. Natürlich kann diese "Befehl" -Entität einige Parameter haben, die Sie übergeben, so dass Sie unterschiedliche Logik für verschiedene Parameter haben können, die Sie an diese Entität übergeben. Hoffnung, die dir klar ist. Dies ist zwar nicht so elegant wie ExecuteTransaction, aber es funktioniert sehr gut und es musste für viele CRM-Versionen so gemacht werden, dass es sicher funktioniert.

Verwandte Themen