09.09.2008, 10:55 | #1 |
Участник
|
AxaptaCOMConnector, Axapta4, метод Logon
Подскажите что ему нужно передать в параметре objectServer ?
AxaptaCOMConnector.Axapta3Class.Logon(Object company, Object language, Object objectServer, Object configuration) При передаче пустой строки или Null Logon не проходит |
|
09.09.2008, 12:26 | #2 |
MCTS
|
Пробовал как-то соединяться из самописного приложения на с++ - может поможет. Все работало и данные нормально выводились прямо на консоль. Вот кусок кода:
X++: cout << "Init Axapta..." << endl; CAxInterface axapta; if (!axapta.Create()) return 0; cout << "Logon..." << endl; if (!axapta.Logon(L"", L"", L"cl_ax40_sp02fp00_test@DELTA:27461", L"")){ cout << "Logon error" << endl; return 0; } Последний раз редактировалось Eldar9x; 09.09.2008 в 18:21. |
|
09.09.2008, 12:49 | #3 |
Участник
|
Цитата:
3-й параметр брал из файла настройки ярлыка запуска аксапты - то что в папке Axc лежит
я собственно могу сделать логин из Visual Basic если опущу 3-й параметр Set axapta = New AxaptaCOMConnector.Axapta3 axapta.Logon companyName, "", , configName - вот так работает но у меня проблема, я хочу сделать вызов из кода С#, из IIS Axapta = new AxaptaCOMConnector.Axapta3(); Axapta.Logon(companyName, "", "", configName); - не работет |
|
09.09.2008, 12:58 | #4 |
MCTS
|
На сервере (там же, где приложение лежит) в папке Clients\Axc лежат файлы *.ini. У нас ax настроен таким образом, что запускается с ярлыков, которые находятся так же на сервере. Каждому ярлыку соответствует свой файл.
Хотя у вас может быть все по другому. В любом случае, видимо этот параметр должен иметь вид <имя_приложения>@<сервер_приложения>:порт. Ну вот, в c# тоже все работает: X++: try { Axapta3 axapta = new AxaptaCOMConnector.Axapta3(); axapta.Logon("", "", "cl_ax40_sp02fp01_dev@DELTA:27461", ""); MessageBox.Show("Succesful"); } catch { MessageBox.Show("error"); } Последний раз редактировалось Eldar9x; 09.09.2008 в 18:21. |
|
09.09.2008, 13:12 | #5 |
Участник
|
|
|
09.09.2008, 13:45 | #6 |
MCTS
|
Цитата:
Я могу ошибаться, но вроде на C# не так просто вызов COM объектов делается? Коннектор от 3 .NET напрямую не поддерживет.
|
|
09.09.2008, 13:59 | #7 |
Участник
|
Цитата:
cl_ax40_sp02fp01_dev
|
|
09.09.2008, 14:03 | #8 |
MCTS
|
это название приложения, запустите аксапту обычным образом, в которую хотите залогинится. В заголовке главного окна будет название приложения.
|
|
09.09.2008, 15:41 | #9 |
Участник
|
Чего-то не работает... ((((((((
на всякий случай а Цитата:
DELTA
а где вы узнали что именно так нужно 3-й параметр формировать? |
|
09.09.2008, 17:51 | #10 |
Участник
|
вообще - может дело в чем-то другом? в настройках прав в IIS?
почему совершенно идентичный вызов из VB работает а из С# не работает.. ? |
|
09.09.2008, 18:13 | #11 |
MCTS
|
Ну если, вы можете залогиниться обычным образом, то и через коннектор должно работать. Delta - имя сервера приложения (имя компьютера)
Порт, кстати, не тот. Нужен - 27461 Цитата:
а где вы узнали что именно так нужно 3-й параметр формировать?
Последний раз редактировалось Eldar9x; 09.09.2008 в 18:22. |
|
09.09.2008, 18:49 | #12 |
Участник
|
Axapta = new AxaptaCOMConnector.Axapta3();
Axapta.Logon(companyName, language, objectServerName, configName); собственно вот.. |
|
09.09.2008, 19:19 | #13 |
MCTS
|
ну так а значения параметров companyName, language, objectservername, configname чему равны?
|
|
10.09.2008, 10:59 | #14 |
Участник
|
из бейсика получилось вызвать как вы написали 3-й параметр "приложение@сервер:порт"
а вот IIS такую ошибку пишет System.Runtime.InteropServices.COMException (0x80041011): The server is unavailable. Microsoft Dynamics will try to connect to other servers in your configuration. at AxaptaCOMConnector.Axapta3Class.Logon(Object company, Object language, Object objectServer, Object configuration) at AxXMLService.isAuthorised(String username) in c:\Inetpub\wwwroot\AxXMLCargoConnector2\App_Code\AxXMLService.cs:line 96 |
|
10.09.2008, 11:10 | #15 |
MCTS
|
а IIS и приложение на одном сервере?
|
|
10.09.2008, 11:12 | #16 |
Участник
|
на разных
|
|
10.09.2008, 12:12 | #17 |
MCTS
|
а проект - ASP.NET Web Service (c#)?
|
|
11.09.2008, 16:05 | #18 |
Участник
|
Собственно, получилось, спасибо Eldar9x -
Помогло указание objectServer как вы сказали, плюс настройка прав IIS потребовалась (Application Pool там есть такие) |
|
16.09.2008, 15:28 | #19 |
MCTS
|
оказалось, что приложение не обязательно указывать, т.е.
cl_ax40_sp02fp01_dev@DELTA:27461 равносильно blabla@DELTA:27461 или DELTA:27461, что есть наиболее правильный вариант, причем @DELTA:27461 уже не пройдет. Главное - IP и порт. Последний раз редактировалось Eldar9x; 16.09.2008 в 15:33. |
|