AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Администрирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 21.12.2011, 05:23   #1  
mvsenin is offline
mvsenin
Участник
 
21 / 10 (1) +
Регистрация: 09.11.2011
Один экземпляр клиента AX на одного пользователя
Привет формучанам, есть вопрос, не раскрывшийся после сёрчинга по докам и Гуглю...

Можно ли как-то просто ограничить кол-во запускаемых клиентов AX на общедоступном компьютере с Windows Server 2003 - один юзер или хотя бы одна сессия=один запущенный клиент?

Используется AX 2009, один AOS, удаленный пользователи работают через терминальный доступ к одному компьютеру с Windows Server 2003 - именно на этом компьютере и хотелось бы сделать так, чтобы один юзер не мог запустит больше одного экземпляра клиента AX.

P.S. Citrix не подходит. Может вопрос не к AX напрямую и что-то можно решить средствами администрирования Windows Servers 2003...

Последний раз редактировалось mvsenin; 21.12.2011 в 05:27.
Старый 21.12.2011, 08:29   #3  
mvsenin is offline
mvsenin
Участник
 
21 / 10 (1) +
Регистрация: 09.11.2011
Спасибо!
Старый 21.12.2011, 09:41   #4  
lvan is offline
lvan
Участник
Аватар для lvan
Лучший по профессии 2014
 
858 / 82 (4) ++++
Регистрация: 15.04.2011
Записей в блоге: 1
просто хочу добавить, что по ссылка посты 5 летней давности и дрвенее, так что на современных версиях AX могут быть проблемы, например в случае использования EP или Ролевых центров - там логинится еще один пользователь с типом "Web user"
За это сообщение автора поблагодарили: mvsenin (0).
Старый 21.12.2011, 09:53   #5  
mvsenin is offline
mvsenin
Участник
 
21 / 10 (1) +
Регистрация: 09.11.2011
Да, это я уже заметил, но первый пример отсуда - Ограничение количества одновременных подключений под одним логином, вполне себе работает на AX 2009, она же 5.0.

Спасибо всем!
Старый 21.12.2011, 11:34   #6  
mvsenin is offline
mvsenin
Участник
 
21 / 10 (1) +
Регистрация: 09.11.2011
А вот и засада - под Windows 7 код
X++:
InfoLog.shutDown(true);
не приводит к закрытию окна AX.

Т.е., клиент запускается, вывдается алёрт, жмем ОК, окно клиента остается на экране, правда, без областей перехода, меню - просто серое окно с заголовком, причем, оно не закрывается даже по кресту... только через снятие процесса.

Есть соображения? WinAPI?
Старый 21.12.2011, 12:30   #7  
lvan is offline
lvan
Участник
Аватар для lvan
Лучший по профессии 2014
 
858 / 82 (4) ++++
Регистрация: 15.04.2011
Записей в блоге: 1
позырьте по кросс-ссылкам, какой код исполняется по тайм-ауту (есть такой параметр в настройках пользователя)
Старый 22.12.2011, 02:02   #8  
mvsenin is offline
mvsenin
Участник
 
21 / 10 (1) +
Регистрация: 09.11.2011
Цитата:
Сообщение от lvan Посмотреть сообщение
позырьте по кросс-ссылкам, какой код исполняется по тайм-ауту (есть такой параметр в настройках пользователя)
... не понимаю, о чем Вы. Я малость затупил - проблема под Windows Server 2003, но от этого пока не легче. Под Windows XP все ровненько (клиент, запускаемый вторым, правда, достаточно долго висит на экране после нажатия ОК в алерте перед закрытием, секунд 5-7)
Старый 22.12.2011, 03:47   #9  
mvsenin is offline
mvsenin
Участник
 
21 / 10 (1) +
Регистрация: 09.11.2011
Вот он, всеработающий код, для закрытия повторно запускаемого клиента AX при запуске (условие может каждый выбрать себе сам, в данном примере ограничение сделано для запуска второго экземпляра клиента на компьютере с одним и тем же именем один и тем же пользователем):
X++:
void startupPost()
{
    xSession    session;
    Session     curSession;
    int         counter;
    str         warning;
    HWND        AxClient;
    ;

     //--- CRM start
    if (!appl.isConfigMode())
    {
        //--- Prevent call to smmInit during installation of Axapta
        //--- If not, code in the method below is run that uses a table that has not yet been created
        for (counter = 1; counter <= xSession::maxSessionId(); counter++)
        {
            session = new xSession(counter, true);
            if (session)
            {
                if (session.sessionId() != sessionid())
                {
                    if ((curuserid() == session.userId()) && (winapi::getComputerName() == session.clientComputerName()))
                    {
                        warning = strfmt("Под пользователем %1 АХ уже запущена на компьютере %2!", session.userId(), session.clientComputerName());
                        Box::warning(warning, "Доступ ограничен");
                        AxClient = winapi::getActiveWindow();
                        winapi::sendMessage(AxClient,274,61536,''); // = SendMessage(WHND, WM_SYSCOMMAND, SC_CLOSE, 0);
                    }
                }
            }
        }
        SmmInit::construct();
    }
    //--- CRM end
}
Все копирайты слюблюдены, отдельный респект Mohan Kumar (http://www.codeproject.com/KB/dialog/closewindow.aspx)

Последний раз редактировалось mvsenin; 22.12.2011 в 05:35.
Старый 22.12.2011, 06:51   #10  
mvsenin is offline
mvsenin
Участник
 
21 / 10 (1) +
Регистрация: 09.11.2011
Одна остающаяся засада - если при старте AX выведет какой-то свой диалог, например, информацию о несоответствии часовых поясов, то закроется этот самый диалог, а не весь клиент , он (клиент) останется пустым-сереньким, незакрывающимся по кресту
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
dynamics-ax: Interview with Microsoft's Lachlan Cash on his new role, AX 2012 and more Blog bot DAX Blogs 6 22.04.2011 14:55
Ошибка после закрытия клиента AX 2009 propeller DAX: Программирование 6 13.08.2010 15:08
Установка клиента AX на диск отличный от C: alesander DAX: Администрирование 3 30.05.2010 17:51
Dynamics AX: Managing Your Supply Chain Using Microsoft Dynamics AX 2009 - Book Review Blog bot DAX Blogs 0 31.03.2009 23:06
Help, pls!!! [SP3 для демки клиента Ax 2.5 нужен] Петрович DAX: Администрирование 10 23.05.2002 14:13

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 19:33.