Ошибка при входе в axapta "Microsoft.Dynamics.BusinessConnectorNet.LogonFailedException"

У меня есть проект веб-формы ASP.net, который подключается к axapta 2009 через версию файла Business Connector (5.0.1500.4570). Все было хорошо, пока вдруг у меня не возникла эта ошибка

    'Microsoft.Dynamics.BusinessConnectorNet.LogonFailedException' occurred in ******.dataaccess.dll but was not handled in user code

       at b2b.logosoft.com.tr.dataaccess.AxaptaConnectorHelper.AxaptaObject() in d:\Projects\B2B\b2b.logosoft.com.tr.site\b2b.logosoft.com.tr.dataaccess\AxaptaConnectorHelper.cs:line 29
   at b2b.logosoft.com.tr.dataaccess.CurrencyDataAccess.GetCurrency(String fromcurrency, String tocurrency) in d:\Projects\B2B\b2b.logosoft.com.tr.site\b2b.logosoft.com.tr.dataaccess\CurrencyDataAccess.cs:line 14
   at b2b.logosoft.com.tr.businessmanager.CurrencyService.GetCurrencyRate(String fromcurrency, String tocurrency) in d:\Projects\B2B\b2b.logosoft.com.tr.site\b2b.logosoft.com.tr.businessmanager\CurrencyService.cs:line 17
   at b2b.logosoft.com.tr.businessmanager.CurrencyService.GetRates() in d:\Projects\B2B\b2b.logosoft.com.tr.site\b2b.logosoft.com.tr.businessmanager\CurrencyService.cs:line 80
   at b2b.logosoft.com.tr.site.UserControls.Header.Page_Load(Object sender, EventArgs e) in d:\Projects\B2B\b2b.logosoft.com.tr.site\b2b.logosoft.com.tr.site\UserControls\header.ascx.cs:line 34
   at System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e)

Выход:

 'iisexpress.exe' (CLR v4.0.30319: /LM/W3SVC/2/ROOT-1-131200350151628806): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_32\System.Transactions\v4.0_4.0.0.0__b77a5c561934e089\System.Transactions.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'iisexpress.exe' (CLR v4.0.30319: /LM/W3SVC/2/ROOT-1-131200350151628806): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Numerics\v4.0_4.0.0.0__b77a5c561934e089\System.Numerics.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'iisexpress.exe' (CLR v4.0.30319: /LM/W3SVC/2/ROOT-1-131200350151628806): Loaded 'C:\Windows\WinSxS\x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.8387_none_5094ca96bcb6b2bb\msvcm90.dll'. Cannot find or open the PDB file.
'iisexpress.exe' (CLR v4.0.30319: DefaultDomain): Loaded 'C:\Windows\WinSxS\x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.8387_none_5094ca96bcb6b2bb\msvcm90.dll'. Cannot find or open the PDB file.
'iisexpress.exe' (CLR v4.0.30319: DefaultDomain): Loaded 'C:\Windows\assembly\GAC_32\Microsoft.Dynamics.BusinessConnectorNet\5.0.0.0__31bf3856ad364e35\Microsoft.Dynamics.BusinessConnectorNet.dll'. Cannot find or open the PDB file.
A first chance exception of type 'Microsoft.Dynamics.BusinessConnectorNet.LogonFailedException' occurred in Microsoft.Dynamics.BusinessConnectorNet.dll
A first chance exception of type 'Microsoft.Dynamics.BusinessConnectorNet.LogonFailedException' occurred in b2b.logosoft.com.tr.dataaccess.dll
A first chance exception of type 'System.Threading.ThreadAbortException' occurred in mscorlib.dll
A first chance exception of type 'Microsoft.Dynamics.BusinessConnectorNet.LogonFailedException' occurred in Microsoft.Dynamics.BusinessConnectorNet.dll
A first chance exception of type 'Microsoft.Dynamics.BusinessConnectorNet.LogonFailedException' occurred in b2b.logosoft.com.tr.dataaccess.dll
'iisexpress.exe' (CLR v4.0.30319: /LM/W3SVC/2/ROOT-1-131200350151628806): Loaded 'C:\Windows\assembly\GAC_MSIL\Microsoft.VisualStudio.Debugger.Runtime\12.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualStudio.Debugger.Runtime.dll'. 
'iisexpress.exe' (CLR v4.0.30319: /LM/W3SVC/2/ROOT-1-131200350151628806): Loaded 'C:\Windows\assembly\GAC_MSIL\Microsoft.VisualStudio.DebuggerVisualizers\12.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualStudio.DebuggerVisualizers.dll'. Cannot find or open the PDB file.

Вот класс помощника соединителя:

public class AxaptaConnectorHelper
{
    #region Class Properties
    public static Axapta Ax { get; set; }
    public static string UserName { get { return AxaptaConnectionInfo.AxUserName; } }
    public static string Password { get { return AxaptaConnectionInfo.AxPassword; } }
    public static string Domain { get { return AxaptaConnectionInfo.AxDomain; } }
    public static string Company { get { return AxaptaConnectionInfo.AxCompany; } }
    public static string Aos { get { return AxaptaConnectionInfo.AxAos; } }
    #endregion
    public Axapta AxaptaObject()
    {
        try
        {
            var nc = new NetworkCredential(UserName, Password, Domain);
            Ax = new Axapta();
            Ax.LogonAs(UserName, Domain, nc, Company, "", Aos, "");
        }
        catch (Exception ex)
        {
            Ax = null;
            throw ex;
        }
        return Ax;
    }
}

Я пробовал следующее:

  1. Очистите решение и восстановите
  2. Удалите ссылку на бизнес-коннектор, а затем пересоберите
  3. Добавлена ​​ссылка на бизнес-коннектор для всех проектов в моем решении
  4. Изменено свойство Build Platform Target на x86 для всех проектов
  5. Убрал папку Temp для проекта

Ничто, кажется, не решает проблему.

1 ответ

LogonFailedException просто означает ваш objAX.Logon() или же objAX.LogonAs() провалился. Обычно это не имеет никакого отношения к папкам build или temp, но ваш код не может подключиться к AOS, используя ваше имя хоста / порт / конфигурацию или имя пользователя.

Вы не показываете фактический код вызова logon/logonas, но ваш код либо не находит AOS, либо не может войти в него, используя предоставленное вами имя пользователя / пароль или вашу учетную запись службы / выполнения.

Убедитесь, что служба запущена, вы можете подключиться к ней (т.е. без брандмауэра), и пользователь не отключен или не заблокирован в Active Directory, но все еще остается пользователем в AX.

Если подумать, AOS (может быть, часть кластера) может отклонять соединения, известные как дренаж

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