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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 14.01.2003, 12:54   #1  
Tony Green is offline
Tony Green
Участник
Аватар для Tony Green
 
184 / 25 (1) +++
Регистрация: 08.10.2002
Адрес: Москва
? Программный перезапуск AOS
Можно ли программно мягко перезапустить AOS внешней программой?

Чтобы пользователям рассылались предупреждения и они не могли логиниться, пока сервер останавливается.

Изначально задача стояла так: периодически мягко перезапускать AOS.
Старый 10.05.2006, 17:42   #2  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
Ну Tony Green не отвечает, попробую я

Во вложении dll и примеры вызова ее функций из Axapta'ы (функции в кач-ве параметров принимают имя или адрес хоста, на котором запущен Server Manager и имя AOS).

Функции -

AosStart(HostName, AOSName) - запуск AOS
AosStop(HostName, AOSName) - остановка AOS
AosStatus(HostName, AOSName) - плучение статуса выполнения AOS

PS. Для работы функций требуется запущенный Server Manager

PPS Удалил вложение, исправление с правами доступа ниже
__________________
Axapta v.3.0 sp5 kr2

Последний раз редактировалось AndyD; 24.05.2006 в 11:30. Причина: Исправление прав доступа
Старый 11.05.2006, 08:29   #3  
tolstjak is offline
tolstjak
Участник
 
440 / 16 (1) ++
Регистрация: 05.01.2003
Цитата:
Сообщение от AndyD
Ну Tony Green не отвечает, попробую я

Во вложении dll и примеры вызова ее функций из Axapta'ы (функции в кач-ве параметров принимают имя или адрес хоста, на котором запущен Server Manager и имя AOS).

Функции -

AosStart(HostName, AOSName) - запуск AOS
AosStop(HostName, AOSName) - остановка AOS
AosStatus(HostName, AOSName) - плучение статуса выполнения AOS

PS. Для работы функций требуется запущенный Server Manager

Большое спасибо.
Только надо, чтобы остановка АОС программно выполнялась не из Аксапты.
Если и такой программный код есть, то буду очень признателен.
__________________
Александр
Старый 11.05.2006, 08:36   #4  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
Вообще-то там dll. Вызывать функции из нее можно из любого языка, поддерживающего их использование, в том числе из командной строки.
__________________
Axapta v.3.0 sp5 kr2
Старый 11.05.2006, 08:42   #5  
tolstjak is offline
tolstjak
Участник
 
440 / 16 (1) ++
Регистрация: 05.01.2003
Цитата:
Сообщение от AndyD
Вообще-то там dll. Вызывать функции из нее можно из любого языка, поддерживающего их использование, в том числе из командной строки.
Большое спасибо.
__________________
Александр
Старый 11.05.2006, 11:42   #6  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
Прошу прощения, насчет командной строки погорячился.
Добавил новые функции для вызова из нее.

Вызывается так
Запуск AOT
rundll32 AosMgr.dll,AosStart_RunDll Axapta "Aaa 1" 1

Остановка AOT
rundll32 AosMgr.dll,AosStop_RunDll Axapta "Aaa 1" 1

После имени вызываемой функции указывается имя хости или IP адрес.
Второй параметр - имя AOS. Если в имени есть пробелы, то заключить в двойные кавачки.
Третий параметр - показывать (1)/не показывать (0 или не указывать параметр) сообщение в случае ошибки

Так же исправил ошибку при передаче имени AOS на сервер

Вложение в сообщении выше обновил.
__________________
Axapta v.3.0 sp5 kr2
За это сообщение автора поблагодарили: andy.l (1), Logger (10).
Старый 15.05.2006, 15:16   #7  
andy.l is offline
andy.l
Участник
 
29 / 15 (1) ++
Регистрация: 17.04.2003
Адрес: Владимирская обл.
"Круто"
Получается, что с любого компа можно остановить AOS!
Так это же доступ без контроля, а проще говоря дырка.
Старый 15.05.2006, 15:28   #8  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
Да. И я о том же
Dll практически делает то-же самое, что и AxCtrl.exe
__________________
Axapta v.3.0 sp5 kr2
Старый 19.05.2006, 13:57   #9  
Migel_84 is offline
Migel_84
Участник
 
45 / 12 (1) ++
Регистрация: 07.10.2005
Адрес: Череповец
Никто не пытался осуществить вышеописанное не в AXAPTA? Я пытаюсь сделать на делфи, но никак не получается, ошибку выдаёт. Вот код
Цитата:
...
function AOS(HostName,AOSName:String):integer;stdcall;
external 'AosMgr.dll' name 'AosStatus';

procedure TForm1.Button1Click(Sender: TObject);
begin
case AOS('10.10.0.10','AXAPTA') of <-ЗДЕСЬ ОШИБКА
-1: Label1.Caption := 'Connection timed out';
-2: Label1.Caption := 'Connection refused';
-3: Label1.Caption := 'Protocol error';
-4: Label1.Caption := 'Server manager not started';
-5: Label1.Caption := 'AOS stopped';
-6: Label1.Caption := 'AOS start pending';
-7: Label1.Caption := 'AOS stop pending';
-8: Label1.Caption := 'AOS running';
-9: Label1.Caption := 'AOS not found on server';
-10: Label1.Caption := 'Cannot assign requested address';
-11: Label1.Caption := 'Unknown TCP error';
-12: Label1.Caption := 'AOS unknown status';
else Label1.Caption := 'Unknown error';;
end;
end;
...
Кто-нибудь может подсказать?

Последний раз редактировалось Migel_84; 19.05.2006 в 14:00.
Старый 19.05.2006, 15:43   #10  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
Да точно, вызов из Delphi проходит с ошибкой. Во вложении исправленная dll

Еще - для AosStatus() дополнительно возвращаются значения с 1 по 4 в которых указывается текущий статус AOS. Посмотрите в коде на xpp - там это есть.

PS Удалил вложение, исправление с правами доступа ниже
__________________
Axapta v.3.0 sp5 kr2

Последний раз редактировалось AndyD; 24.05.2006 в 11:25. Причина: Изменил права доступа для dll
Старый 19.05.2006, 16:04   #11  
Migel_84 is offline
Migel_84
Участник
 
45 / 12 (1) ++
Регистрация: 07.10.2005
Адрес: Череповец
Цитата:
Сообщение от AndyD
Да точно, вызов из Delphi проходит с ошибкой. Во вложении исправленная dll

Еще - для AosStatus() дополнительно возвращаются значения с 1 по 4 в которых указывается текущий статус AOS. Посмотрите в коде на xpp - там это есть.
Спасибо, всё работает и далфи.
Старый 23.05.2006, 11:27   #12  
Migel_84 is offline
Migel_84
Участник
 
45 / 12 (1) ++
Регистрация: 07.10.2005
Адрес: Череповец
Действительно, неплохая дырка, AOS может остановить любой пользователь с любого компа. Но дыра легко лечится закрытием портов, а в коде проги указывается локальный IP, только прогу тогда нужно запускать с сервера, тогда всё ок. Можно конечно выложить эту прогу, но тогда у кого-нибудь могут быть не очень хорошие последствия.
Старый 23.05.2006, 17:16   #13  
Dron AKA andy is offline
Dron AKA andy
Moderator
 
944 / 253 (10) ++++++
Регистрация: 27.03.2002
Адрес: Москва
Вообще-то, если dll делает то же, что и AxCtrl (сам не проверял), то для работы с АОСами нужен административный доступ на соответствующий сервер, чего у обычного пользователя быть не должно. Или я не прав?
__________________
Андрей.
За это сообщение автора поблагодарили: AndyD (3).
Старый 24.05.2006, 08:20   #14  
Migel_84 is offline
Migel_84
Участник
 
45 / 12 (1) ++
Регистрация: 07.10.2005
Адрес: Череповец
Цитата:
Сообщение от Dron AKA andy
Вообще-то, если dll делает то же, что и AxCtrl (сам не проверял), то для работы с АОСами нужен административный доступ на соответствующий сервер, чего у обычного пользователя быть не должно. Или я не прав?
Нет, не прав. Если не закрыты порты(не проверял какие), через которые работает программа, то любой пользователь может перегрузить АОС, имея dll и эту программу, просто нужно знать IP сервера и имя АОСа.
Старый 24.05.2006, 11:21   #15  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
Dron AKA andy говорит про AxCtrl.exe (оснастка из панели управления). Да, эта оснастка требует административный доступ для управления AOS. Я не учел этого, по-этому dll-ка может работать не обращая внимания на права доступа.

Выкладываю обновленный проект - в нем для управления требуется наличие административных прав на сервере AOS для текущего пользователя Windows (точнее прав на управление сервисами). Для получения статуса AOS (функция AosStatus()) административных прав не требуется.
Вложения
Тип файла: rar aos.rar (54.2 Кб, 317 просмотров)
Тип файла: xpo AosFunc.xpo (7.8 Кб, 571 просмотров)
__________________
Axapta v.3.0 sp5 kr2

Последний раз редактировалось AndyD; 12.01.2007 в 15:33.
За это сообщение автора поблагодарили: mazzy (5), AlGol (1), vallys (2).
Старый 12.01.2007, 10:42   #16  
gefr is offline
gefr
Участник
Аватар для gefr
MCBMSS
 
147 / 17 (1) ++
Регистрация: 01.11.2004
Адрес: МО, Котельники
Не хватает только AOSStatus_RunDll, чтобы для этого код не писать, а батником обойтись
Старый 16.11.2007, 17:06   #17  
vallys is offline
vallys
Developer
 
146 / 108 (0) +++++
Регистрация: 18.01.2005
Ув. AndyD!
Во-первых, спасибо за оч. полезную библиотеку!
А во-вторых, позвольте задать Вам пару вопросов:
1. Знаете ли Вы как (не партнеру) можно найти информацию о принципах управления Server Manager (Ax32mgr.exe) по порту TCP 2712 (инет, доки, книги)?
2. Возможно ли подобным образом управлять и "режимом запуска" АОСа (manual, on demand)? И (в случае положительного ответа) может Вы бы согласились доработать Вашу библиотеку для управления "режимом запуска" АОСа ?

Заранее, спасибо.
Старый 12.01.2007, 10:45   #18  
gefr is offline
gefr
Участник
Аватар для gefr
MCBMSS
 
147 / 17 (1) ++
Регистрация: 01.11.2004
Адрес: МО, Котельники
Да и regsvr32 отказался ее регистрировать - говорит, точки входа нет
Старый 12.01.2007, 11:09   #19  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
Это не COM-объект.
А что должна выводить AOSStatus_RunDll? И каким образом?
__________________
Axapta v.3.0 sp5 kr2
Старый 12.01.2007, 12:04   #20  
gefr is offline
gefr
Участник
Аватар для gefr
MCBMSS
 
147 / 17 (1) ++
Регистрация: 01.11.2004
Адрес: МО, Котельники
Цитата:
Сообщение от AndyD Посмотреть сообщение
Это не COM-объект.
А что должна выводить AOSStatus_RunDll? И каким образом?
В коммандную строку - текущий статус. И, наверное, errorlevel возвращать....
Теги
aos, ax3.0, download, faq, администрирование, законченный пример

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
daxis: Troubleshooting blocked SPIDS in AOS Blog bot DAX Blogs 0 01.04.2009 18:05
Arijit Basu: AX 4 AOS Basics: [Level 100] Blog bot DAX Blogs 0 18.11.2007 14:30
DynamicsTech: What's New in Dynamics Ax 4.0 AOS? Blog bot DAX Blogs 0 12.04.2007 11:50
axaptapedia: Control AOS from command line Blog bot DAX Blogs 0 09.03.2007 14:50
Топология AOS'ов Sequel DAX: Администрирование 9 03.05.2006 18:37

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 05:32.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.