Закрытие пользовательских сессий AXAPTA - PullRequest
0 голосов
/ 16 января 2020

Я создаю веб-сайт, который использует Dynamics AX Business Connector для соединения с AX, он работает нормально, но иногда пользователи не выходят из системы.

Вот мой код:

Microsoft.Dynamics.BusinessConnectorNet.Axapta DynAx = new Microsoft.Dynamics.BusinessConnectorNet.Axapta();
        try
        {
            DynAx.Logon(null, null, null, null);
            //Execute some methods
            DynAx.Logoff();
        }
        catch (Exception ex)
        {
            DynAx.Logoff();
        }

и по оси я вижу пользователей, вошедших в систему. Опять же, иногда такое случается, поэтому я не знаю, кто это может быть. Может, лучше утилизировать метод?)

Спасибо, что нашли время прочитать это.

1 Ответ

2 голосов
/ 16 января 2020

Вход / выход из системы у меня работает правильно, но если вы говорите иногда , это не так, то причина, скорее всего, одна из следующих:

  • бизнес-коннектор может быть облупленным. Это не было приоритетом Microsoft и в конечном итоге было признано устаревшим.
  • Все, что происходит в вашем разделе //Execute some methods, может блокировать или предотвращать выход из системы.
  • Вам может потребоваться обновить ядро, чтобы получить обновленная версия бизнес-коннектора

В моей среде AX2012R3 я могу снова и снова успешно запускать приведенный ниже код PowerShell. Это указывает мне на одну из вышеперечисленных причин.

Add-Type -Path "C:\Program Files\Microsoft Dynamics AX\60\BusinessConnector\Bin\Microsoft.Dynamics.BusinessConnectorNet.dll"
$ax = new-object Microsoft.Dynamics.BusinessConnectorNet.Axapta
 
$ax.logon($null, $null, $null, $null)
$b = $ax.CreateAxaptaRecord("userinfo")

$array = New-Object System.Collections.ArrayList
 
$b.ExecuteStmt("select id from %1")
while($b.found){
    $array.add($b.get_field("id")) | out-null
    $b.next() | out-null
}
 
$array | Format-Table -AutoSize

$ax.Logoff()
$ax.Dispose()
...