Показать сообщение отдельно
Старый 14.10.2015, 17:11   #1  
Stitch_MS is offline
Stitch_MS
Участник
Аватар для Stitch_MS
Соотечественники
 
397 / 483 (17) +++++++
Регистрация: 27.02.2006
Адрес: Дания
AX 2012 R3: Business Connector не может получить экземпляр класса XMLDocument
Стал на днях исследовать, почему 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