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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 05.03.2012, 09:43   #1  
kaw is offline
kaw
Участник
 
122 / 35 (2) +++
Регистрация: 23.03.2004
Адрес: Новосибирск
AifMSMQAdapter
решил протестировать AifMSMQAdapter (Ax 4.0)

1 шаг
Configure Message Queuing to work with Microsoft Dynamics AX

2 шаг
Основное \ Настройка \ AIF \ Адаптеры транспортировки => AifMSMQAdapter

3 шаг
Создаю:
Основное \ Настройка \ AIF \ Каналы => AifMSMQAdapter (адрес = \\MyPC\private$\MyMsmq\ )

выдает ошибку:
Цитата:
Метод "validateConfiguration" в COM-объекте класса "Microsoft.Dynamics.IntegrationFramework.Adapter.MessageQueue" возвратил код ошибки 0x80131509 (<неизвестно>), который означает: Message Queuing has not been installed on this computer.
в документации MSMQ_faq_updated нашел :
Цитата:
14.15 MSMQ is installed and running but my .NET application fails with exception "Message Queuing has not been installed on this computer". Why?
One possible problem is that your assembly includes a DLL with a name identical to an operating system dll (for example, "security.dll"). In that case, MQRT.dll (the MSMQ runtime) will try to load the dll from the assembly instead of loading the operating system dll. It fails and cannot be loaded. Then .NET concludes that MSMQ is not installed, because it cannot load MQRT.
To troubleshoot this, enable "Show Loader snaps" in Gflags and run your process under windbg. It will trace modules load and unload. (To find more about Gflags, search for the word "Gflags" at http://support.microsoft.com ).
You could also use the Assembly Binding Log Viewer to display details for failed assembly binds. This information helps you diagnose why the .NET Framework cannot locate an assembly at run time. These failures are usually the result of an assembly deployed to the wrong location or a mismatch in version numbers or cultures. The common language runtime's failure to locate an assembly typically shows up as a TypeLoadException in your application. Read the following article for more information on the Assembly Binding Log viewer tool.
Но что-то не удается разобраться. Может кто сталкивался ?!
Старый 05.03.2012, 13:17   #2  
b_nosoff is offline
b_nosoff
Читатель
Аватар для b_nosoff
MCP
MCBMSS
 
197 / 143 (5) +++++
Регистрация: 01.12.2004
Адрес: Msk
Записей в блоге: 13
А вы очередь на AOS-е поставили?
__________________
Axapta non erubescit
Старый 06.03.2012, 08:30   #3  
kaw is offline
kaw
Участник
 
122 / 35 (2) +++
Регистрация: 23.03.2004
Адрес: Новосибирск
спасибо.

Проблема оказалось в следующем:

Цитата:
Before installation, determine which account you want the AOS service to run as (the AOS account). By default, an AOS instance runs as the Network Service account of the computer that you install it on. You can also set the AOS instance to run as a domain account.

Note. To use MSMQ for document exchange in your system, you must set the AOS account to be a domain account.
http://technet.microsoft.com/en-us/l...(v=ax.10).aspx
Старый 06.03.2012, 11:50   #4  
b_nosoff is offline
b_nosoff
Читатель
Аватар для b_nosoff
MCP
MCBMSS
 
197 / 143 (5) +++++
Регистрация: 01.12.2004
Адрес: Msk
Записей в блоге: 13
:) Мы явно что-то сделали не так...
Цитата:
Сообщение от kaw Посмотреть сообщение
Проблема оказалось в следующем:
Странно, но AOS, запущенный из под Network Service, у нас прекрасно работает с MSMQ Всего-то нужно было настроить права на очередь.
__________________
Axapta non erubescit
Старый 06.03.2012, 12:57   #5  
kaw is offline
kaw
Участник
 
122 / 35 (2) +++
Регистрация: 23.03.2004
Адрес: Новосибирск
В очереди AifGatewaySendService, AifOutboundProcessingService - присутствуют,
хотя мне не понятно, как/почему это может повлиять на настройки...

С правами хорошая идея, поставил на Private и Public очередь права ВСЕМ - ВСЕ
но не помогло...

P.S. Полностью на "Очередь сообщений" (первая красная галка) - изменить права не дает
Миниатюры
Нажмите на изображение для увеличения
Название: Снимок.PNG
Просмотров: 444
Размер:	117.7 Кб
ID:	7620  

Последний раз редактировалось kaw; 06.03.2012 в 13:02.
Старый 06.03.2012, 13:29   #6  
b_nosoff is offline
b_nosoff
Читатель
Аватар для b_nosoff
MCP
MCBMSS
 
197 / 143 (5) +++++
Регистрация: 01.12.2004
Адрес: Msk
Записей в блоге: 13
Цитата:
Сообщение от kaw Посмотреть сообщение
В очереди AifGatewaySendService, AifOutboundProcessingService - присутствуют,
хотя мне не понятно, как/почему это может повлиять на настройки...

С правами хорошая идея, поставил на Private и Public очередь права ВСЕМ - ВСЕ
но не помогло...

P.S. Полностью на "Очередь сообщений" (первая красная галка) - изменить права не дает
только что проверил, правда на пятерке и семерке - после выдачи NETWORK SERVICE полного доступа к свежесозданной очереди, доступ к публичной очереди легок и непринужденен. К частной чуть сложнее - путь прописывается как
Код:
FormatName:DIRECT=OS:mycomputername\private$\privatequery
, но тоже без проблем. Стесняюсь спросить, очередь-то транзактная? Хотя это вроде не должно таких ошибок влечь...
__________________
Axapta non erubescit

Последний раз редактировалось b_nosoff; 06.03.2012 в 13:32.
Старый 06.03.2012, 14:02   #7  
kaw is offline
kaw
Участник
 
122 / 35 (2) +++
Регистрация: 23.03.2004
Адрес: Новосибирск
Цитата:
Сообщение от b_nosoff Посмотреть сообщение
только что проверил, правда на пятерке и семерке - после выдачи NETWORK SERVICE полного доступа к свежесозданной очереди, доступ к публичной очереди легок и непринужденен. К частной чуть сложнее - путь прописывается как
Код:
FormatName:DIRECT=OS:mycomputername\private$\privatequery
, но тоже без проблем. Стесняюсь спросить, очередь-то транзактная? Хотя это вроде не должно таких ошибок влечь...
Аналогично, стесняюсь спросить... У Вас реализация через NET ?
я пытался стандартными средствами Aif,
попробывал через COM, по аналогии с AifMSMQAdapter . validateConfiguration

X++:
    #AIF
    COM MSMQ;
    int actualPermissions;
    int requiredPermissions;
    ;
    
    // Create COM object                                    
    new InteropPermission(InteropKind::ComInterop).assert();
                                                        
    // BP Deviation Documented
    MSMQ = AifUtil::getCOM(#MSMQProgId);
    CodeAccessPermission::revertAssert();

    new InteropPermission(InteropKind::ComInterop).assert();         
                                                                 
    // BP Deviation Documented
    actualPermissions = MSMQ.validateConfiguration('\\\\MyPC\\mymsmq1');
    CodeAccessPermission::revertAssert();
                                                                 
    // Make sure they are sufficient
    if(actualPermissions < requiredPermissions)
        throw error("@SYS95514");
Цитата:
COM-объект класса "Microsoft.Dynamics.IntegrationFramework.Adapter.MessageQueue" не удалось создать. Убедитесь, что объект был должным образом зарегистрирован на компьютере "MyPC".
Объект "COM" не может быть создан
P.S. сделал еще по одной очереди - транзактные, не помогло
Старый 06.03.2012, 14:37   #8  
b_nosoff is offline
b_nosoff
Читатель
Аватар для b_nosoff
MCP
MCBMSS
 
197 / 143 (5) +++++
Регистрация: 01.12.2004
Адрес: Msk
Записей в блоге: 13
Цитата:
Сообщение от kaw Посмотреть сообщение
Аналогично, стесняюсь спросить... У Вас реализация через NET ?
я пытался стандартными средствами Aif,
Только и исключительно стандартные средства - форма "Каналы" (AifChannel). Она, как известно, при попытке сохранения записи проводит валидацию посредством вызова validateConfiguration.

PS. Почему я упомянул про транзактность - мне не удалось заставить Аксапту работать с нетранзактными очередями...
__________________
Axapta non erubescit
Старый 07.03.2012, 07:17   #9  
kaw is offline
kaw
Участник
 
122 / 35 (2) +++
Регистрация: 23.03.2004
Адрес: Новосибирск
Цитата:
Сообщение от b_nosoff Посмотреть сообщение
Только и исключительно стандартные средства - форма "Каналы" (AifChannel).

Код:
FormatName:DIRECT=OS:mycomputername\private$\privatequery
Меня смутил код, больше похоже на NET
если я правильно понял в на форме "Каналы" (AifChannel), Вы прописываете именно такую строку ?

P.S. нашел пример на VBS
http://blogs.msdn.com/b/sansom/archi...from-msmq.aspx
который отлично работает...
Миниатюры
Нажмите на изображение для увеличения
Название: Снимок.PNG
Просмотров: 279
Размер:	70.9 Кб
ID:	7622  
Вложения
Тип файла: rar msmq.rar (733 байт, 65 просмотров)
Старый 07.03.2012, 11:20   #10  
b_nosoff is offline
b_nosoff
Читатель
Аватар для b_nosoff
MCP
MCBMSS
 
197 / 143 (5) +++++
Регистрация: 01.12.2004
Адрес: Msk
Записей в блоге: 13
Цитата:
Сообщение от kaw Посмотреть сообщение
Меня смутил код, больше похоже на NET
если я правильно понял в на форме "Каналы" (AifChannel), Вы прописываете именно такую строку ?
да, именно так.

Честно говоря, идей, почему у вас не работает очередь, нет. Можно попробовать стандартные админские действия (переустановку компонента).

PS. На всякий случай спрошу, вы точно установили очередь на том же сервере, где и AOS крутится?
__________________
Axapta non erubescit
За это сообщение автора поблагодарили: kaw (1).
Старый 07.03.2012, 13:10   #11  
kaw is offline
kaw
Участник
 
122 / 35 (2) +++
Регистрация: 23.03.2004
Адрес: Новосибирск
Спасибо, вопрос решился.

Цитата:
Сообщение от b_nosoff Посмотреть сообщение
А вы очередь на AOS-е поставили?
Цитата:
Сообщение от kaw Посмотреть сообщение
В очереди AifGatewaySendService, AifOutboundProcessingService - присутствуют,
хотя мне не понятно, как/почему это может повлиять на настройки...
Я все напутал
у меня очередь ассоциируется с Пакетником.

P.S. Утешаю себя, что блаодаря своей невнимательности,
столько много нюансов накопал
Старый 11.03.2012, 06:39   #12  
Perc is offline
Perc
Участник
 
194 / 57 (2) ++++
Регистрация: 05.03.2005
Цитата:
Сообщение от b_nosoff Посмотреть сообщение
Странно, но AOS, запущенный из под Network Service, у нас прекрасно работает с MSMQ Всего-то нужно было настроить права на очередь.
Когда настраивали AIF в другой базе и на другом сервере АОС под Network Service отказался работать с MSMQ. Добавление всевозможных прав на очередь, переустановка компоненты MSMQ, АОСа ничего не дала. В итоге запустили АОС под другим аккаунтом.
Админ объснил глюк тем что что не стандарно устанавливался сервер. Както через клонирование.
Теги
aif, msmq

 

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

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