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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 25.09.2007, 18:20   #1  
Кирен is offline
Кирен
Участник
 
22 / 10 (1) +
Регистрация: 03.02.2004
Адрес: Украина, г. Донецк
Использование COM Connector'a в службах Windows
Axapta 3.0 SP4.

Вопрос пограничный: про Аксапту и сторонние программы.

Есть приложение на C#.
Приложение состоит из двух частей.
Клиентская часть приложения делает запрос серверной части на Аксаптовские данные.
Серверная часть с помощью Axapta COM Connector забирает эти данные и передаёт клиенту.

Изначально серверная часть была реализована как Console Application.
Всё достаточно четко работало.

Но при попытке реализовать серверную часть как службу Windows возникли проблемы.
Служба создаётся, запускается, но в момент вызова метода сервера на клиенте
(для получения данных сервера клиентом используется .NET Remoting и web-сервисы)
появляется сообщение:
"**** System.Runtime.Remoting.RemotingException - Server encountered an internal error.
For more information, turn on customErrors in the server's .config file"


Если подключится к серверному процессу в режиме отладки, то момент вылетания в catch определяется в следующем коде:

X++:
ax = new AxaptaCOMConnector.Axapta2Class();
IDictionary login=(IDictionary)ConfigurationSettings.GetConfig("AxCOMConnectorLogin");
try
{
	ax.Logon2(login["Login"],login["Password"],"","","","",login["AxConfiguration"],false,null,null);
}
catch(Exception err)
{
	Console.WriteLine(err.Message+login["Login"]+login["Password"]);
}
Текст сообщения об ошибке на сервере (err.Message):
"QueryInterface for interface AxaptaCOMConnector.IAxapta2 failed"

Вопрос: знает ли кто-нибудь об особенностях использования Axapta COM Connector в службах Windows?
Есть ли какие-то ограничения?
И вообще, можно ли делать вызовы COM Connector'a в службах Windows?

Повторюсь: если серверная часть реализована как Console Application, то клиент получает запрашиваемые им данные.

Последний раз редактировалось Кирен; 25.09.2007 в 18:31. Причина: дополнение
Старый 25.09.2007, 18:32   #2  
glibs is offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4,942 / 911 (40) +++++++
Регистрация: 10.06.2002
Адрес: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
Я не уверен, но проблема м.б. в седьмом параметре.

Конфигурация читается из реестра из ветки HKCU\... Если на сервере никто не залогонен консольно, то конфигурация просто может не быть обнаружена. По крайней мере в 3.0 была такая проблема при настройке портала.

Упс... у вас 3.0. Запутали своим .NET меня.

У вас кто-то залогонен, когда работает служба, которая доступается к СОМ-коннектору?

Если вы хорошо программируете на C++, попробуйте проверить, доступна ли эта конфигурация для службы, считав значения из системного реестра.

Возможно, проблема в этом.
__________________
С уважением,
glibs®
Старый 25.09.2007, 18:40   #3  
glibs is offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4,942 / 911 (40) +++++++
Регистрация: 10.06.2002
Адрес: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
Смотрите, как логонится портал.

...
Ax.Logon2 Ax_DefaultLogon,,,,,,AX_Configuration
...
(из файла i_axaptafunctions.asp)

А вот объявление переменных-констант
...
AX_Configuration = "C:\Inetpub\wwwroot\Portal\Test.axc"
...
(из файла i_axapp.asp)

PS. Код на VB, я так понимаю. Надеюсь, вам он понятен не в меньшей степени, чем мне.
__________________
С уважением,
glibs®

Последний раз редактировалось glibs; 25.09.2007 в 18:42. Причина: Уточнение
Старый 26.09.2007, 10:04   #4  
Lucky13 is offline
Lucky13
Участник
1C
 
714 / 198 (8) ++++++
Регистрация: 21.10.2004
Было что-то подобное - коннектор не логинился если серверное приложение работает как служба.
Единственный вариант при котором все заработало следующий:
1. При вызове логин в серверном приложении указываю только имя конфигурации
X++:
Axapta.Logon("","","","com");
2. Конфигурацию настраиваю под некоторым пользователем и в свойствах службы указываю - входить от имени этого пользователя.
Старый 26.09.2007, 14:32   #6  
Кирен is offline
Кирен
Участник
 
22 / 10 (1) +
Регистрация: 03.02.2004
Адрес: Украина, г. Донецк
...насколько я поняла, проблема в настройках конкретного компа.
А точнее - в кривости установки (регистрации) COM Connector'a.
На другом компе служба чудесно работает.

Последний раз редактировалось Кирен; 16.01.2008 в 14:23.
Теги
ax3.0

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
msdynamicsax: VB script that test the com connector for Dynamics Ax 4.0 Blog bot DAX Blogs 0 25.08.2008 18:05
Client Axapta 3.0 SP4 и Linux. Как запустить? Daiver DAX: Администрирование 10 28.06.2007 15:59
COM и Windows CE IT-specialist DAX: Прочие вопросы 7 21.11.2005 08:25
Использование COM коннекторов для получения данные из таблицы для стороннего клиента. IS DAX: Функционал 1 28.04.2004 13:10

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

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

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