HttpWebRequest.GetRequestStream() не работает в плагине MS Dynamics CRM

Я написал плагин, в котором я пытаюсь получить ответ XML. Это мой код:

// 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();

Этот код прекрасно работает, когда он написан в консольном приложении. Но когда я копирую тот же код в библиотеку классов (плагин) и пытаюсь отладить его с помощью профилировщика плагинов, приложение резко останавливается, когда достигает (LINE 5), т.е. Stream dataStream = request.GetRequestStream();

Функция request.GetRequestStream() не работает с плагином, но отлично работает в консоли.

Любая помощь будет оценена:)

заранее спасибо

Примечание: я использую пробную версию Dynamics 365 онлайн

1 ответ

При создании плагина с веб-запросами необходимо учитывать несколько моментов. Во-первых, вам нужно использовать WebClient, поскольку он широко поддерживается продуктами Microsoft.

Во-вторых, ваш URL должен быть DNS-именем, а не IP-адресом, так как это размещаемый плагин в режиме песочницы.

Пример с сайта Microsoft: https://msdn.microsoft.com/en-us/library/gg509030.aspx

Материал для чтения: https://crmbusiness.wordpress.com/2015/02/05/understanding-plugin-sandbox-mode/

Другие вопросы по тегам