2017-03-03 4 views
0

Ich habe ein Plugin geschrieben, in dem ich versuche, eine XML-Antwort zu erhalten. Dies ist mein Code:HttpWebRequest.GetRequestStream() funktioniert nicht in MS Dynamics CRM Plugin

// Set the Method property of the request to POST. 
string strXMLServer = "xxx"; 
var request = (HttpWebRequest)WebRequest.Create(strXMLServer); 
request.Method = "POST"; 

// Set the ContentType property of the WebRequest. 
request.ContentType = "xyz"; 

// Assuming XML is stored in strXML 
byte[] byteArray = Encoding.UTF8.GetBytes(strXML); 

// Set the ContentLength property of the WebRequest. 
request.ContentLength = byteArray.Length; 

//(LINE 5) Get the request stream 
Stream dataStream = request.GetRequestStream(); 

// Write the data to the request stream. 
dataStream.Write(byteArray, 0, byteArray.Length); 
// Close the Stream object. 
dataStream.Close(); 

Dieser Code funktioniert gut, wenn seine in einer Konsolenanwendung geschrieben. Aber wenn ich den gleichen Code auf einer Klassenbibliothek (Plugin) kopieren und versucht, es zu debuggen Plugin Profiler, wird die Anwendung abrupt gestoppt, wenn es erreicht (Linie 5) dh bei Stream dataStream = request.GetRequestStream();

request.GetRequestStream() Funktion funktioniert nicht mit Plugin, funktioniert aber in einer Konsole.

Jede mögliche Hilfe :)

Vielen Dank im Voraus geschätzt werden

Hinweis: Ich bin mit Dynamics 365 Online-Testversion

Antwort

0

Es gibt ein paar Dinge zu berücksichtigen, beim Erstellen eines Plugins mit Web-Anfragen. Zuerst müssen Sie WebClient verwenden, da es von Microsoft-Produkten weitgehend unterstützt wird.

Zweitens muss Ihre URL ein DNS-Name und nicht eine IP-Adresse sein, da dies eine gehostete Plugin in Sandbox-Modus befindet.

Beispiel von der Microsoft-Website: https://msdn.microsoft.com/en-us/library/gg509030.aspx

Lesematerial: https://crmbusiness.wordpress.com/2015/02/05/understanding-plugin-sandbox-mode/

Verwandte Themen