| 
	 | 
| 
			
			 | 
		#1 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
			
			
			AxaptaCOMConnector, Axapta4, метод Logon
			 
			
			Подскажите что ему нужно передать в параметре objectServer ? 
		
		
		
		
		
		
		
	AxaptaCOMConnector.Axapta3Class.Logon(Object company, Object language, Object objectServer, Object configuration) При передаче пустой строки или Null Logon не проходит  | 
| 
	
 | 
| 
			
			 | 
		#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.  | 
| 
	
 | 
| 
			
			 | 
		#3 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			3-й параметр брал из файла настройки ярлыка запуска аксапты - то что в папке Axc лежит
		
	 
я собственно могу сделать логин из Visual Basic если опущу 3-й параметр Set axapta = New AxaptaCOMConnector.Axapta3 axapta.Logon companyName, "", , configName - вот так работает но у меня проблема, я хочу сделать вызов из кода С#, из IIS Axapta = new AxaptaCOMConnector.Axapta3(); Axapta.Logon(companyName, "", "", configName); - не работет  | 
| 
	
 | 
| 
			
			 | 
		#4 | 
| 
			
			 Участник 
		
			
	 | 
	
	|
| 
	
 | 
| 
			
			 | 
		#5 | 
| 
			
			 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.  | 
| 
	
 | 
| 
			
			 | 
		#6 | 
| 
			
			 MCTS 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Я могу ошибаться, но вроде на C# не так просто вызов COM объектов делается? Коннектор от 3 .NET напрямую не поддерживет.
		
	 
 | 
| 
	
 | 
| 
			
			 | 
		#7 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			cl_ax40_sp02fp01_dev
		
	 
 | 
| 
	
 | 
| 
			
			 | 
		#8 | 
| 
			
			 MCTS 
		
			
	 | 
	
	
	
		
		
		
		 
			
			это название приложения, запустите аксапту обычным образом, в которую хотите залогинится. В заголовке главного окна будет название приложения.
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#9 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Чего-то не работает... (((((((( 
		
		
		
		
		
		
		
	на всякий случай а Цитата: 
	
		
			DELTA
		
	 
а где вы узнали что именно так нужно 3-й параметр формировать?  | 
| 
	
 | 
| 
			
			 | 
		#10 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			вообще - может дело в чем-то другом? в настройках прав в IIS? 
		
		
		
		
		
		
		
	почему совершенно идентичный вызов из VB работает а из С# не работает.. ?  | 
| 
	
 | 
| 
			
			 | 
		#11 | 
| 
			
			 MCTS 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Ну если, вы можете залогиниться обычным образом, то и через коннектор должно работать. Delta - имя сервера приложения (имя компьютера) 
		
		
		
		
		
		
		
		
			Порт, кстати, не тот. Нужен - 27461 Цитата: 
	
		
			а где вы узнали что именно так нужно 3-й параметр формировать?
		
	 
Последний раз редактировалось Eldar9x; 09.09.2008 в 18:22.  | 
| 
	
 | 
| 
			
			 | 
		#12 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Axapta = new AxaptaCOMConnector.Axapta3(); 
		
		
		
		
		
		
		
	Axapta.Logon(companyName, language, objectServerName, configName); собственно вот..  | 
| 
	
 | 
| 
			
			 | 
		#13 | 
| 
			
			 MCTS 
		
			
	 | 
	
	
	
		
		
		
		 
			
			ну так а значения параметров companyName, language, objectservername, configname чему равны?
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#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  | 
| 
	
 | 
| 
			
			 | 
		#15 | 
| 
			
			 MCTS 
		
			
	 | 
	
	
	
		
		
		
		 
			
			а IIS и приложение на одном сервере?
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#16 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			на разных
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#17 | 
| 
			
			 MCTS 
		
			
	 | 
	
	
	
		
		
		
		 
			
			а проект - ASP.NET Web Service (c#)?
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#18 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Собственно, получилось, спасибо Eldar9x -  
		
		
		
		
		
		
		
	Помогло указание objectServer как вы сказали, плюс настройка прав IIS потребовалась (Application Pool там есть такие)  | 
| 
	
 | 
| 
			
			 | 
		#19 | 
| 
			
			 MCTS 
		
			
	 | 
	
	
	
		
		
		
		 
			
			оказалось, что приложение не обязательно указывать, т.е. 
		
		
		
		
		
		
		
		
			cl_ax40_sp02fp01_dev@DELTA:27461 равносильно blabla@DELTA:27461 или DELTA:27461, что есть наиболее правильный вариант, причем @DELTA:27461 уже не пройдет. Главное - IP и порт. Последний раз редактировалось Eldar9x; 16.09.2008 в 15:33.  | 
| 
	
 |