Стал на днях исследовать, почему Visual Studio при открытии зависает.
Оказалось, оно запускает новую клиентскую сессию через Business Connector, пытается запустить логику системы контроля версий, и в какой-то момент сессия молча падает на вызове XmlDocument::newXML(), после чего открывается новая сессия и дальше по кругу.
Могу вопроизвести при помощи такого скрипта на C#:
X++:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.Dynamics.BusinessConnectorNet;
namespace ReproXmlDocumentError
{
class Program
{
public static void createObjectInAX(string _objectName)
{
Axapta ax;
try
{
ax = new Axapta();
ax.Logon(null, null, null, null);
AxaptaObject o = ax.CreateAxaptaObject(_objectName);
if (o != null)
{
Console.WriteLine(
"Object {0} was successfully created",
_objectName);
}
}
catch (Exception e)
{
Console.WriteLine(
"Object {0} was not created. Error: {1}",
_objectName,
e.Message);
}
}
static void Main(string[] args)
{
createObjectInAX("CostSheet");
createObjectInAX("XMLDocument");
createObjectInAX("TextBuffer");
Console.ReadKey();
}
}
}
Результат:
После запуска в Event Viewer можно найти записи, где самое конкретное: "The specified resource type cannot be found in the image file".
Пробовал запустить этот же скрипт на демо-машинах AX 2012 R3 RTM и AX 2012 R3 CU9: всё нормально, XMLDocument создается.
Если запустить аналогичный скрипт, но на X++ в клиенте -- тоже без проблем.
Что бы это такое могло быть, что стандартный класс XmlDocument не работает через бизнес-коннектор?
AX 2012 R3
Kernel version: 6.3.2000.3774
Application version: 6.3.2000.323