Показать сообщение отдельно
Старый 19.11.2013, 18:57   #8  
AraraT® is offline
AraraT®
Участник
1C
 
158 / 106 (4) +++++
Регистрация: 13.01.2006
Адрес: Республика Татарстан, г. Казань
Основные моменты при создании приложений COM+:

1. Когда создаете приложение COM+, указывайте, что это серверное приложение;
2. Далее в мастере создания в окне "Удостоверение приложения" необходимо указать пользователя и пароль от имени которого стартует АОС;
3. Далее в мастере создания в окне "Добавление пользователей и ролей" также необходимо добавить пользователя от имени которого стартует АОС;
4. При создании конкретного компонента внутри приложения COM+ выбирайте библиотеку comcntr.dll из папки "Program Files (x86)".

Нижеприведенный код должен отрабатывать без проблем:

X++:
    new InteropPermission(InteropKind::ComInterop).assert();

    COMconnector        = new COM(this.getCOMConnectorProg());

    CodeAccessPermission::revertAssert();
где функция getCOMConnectorProg() имеет вид:

X++:
private str getCOMConnectorProg()
{
    str getCOMConnectorProg;
    ;
    switch(Version)
    {
        case        ::V80 :
            getCOMConnectorProg     = #V80_COMConnector;
            break;
        case        ::V81 :
            getCOMConnectorProg     = #V81_COMConnector;
            break;
        case        ::V82 :
            getCOMConnectorProg     = #V82_COMConnector;
            break;
        default :
            throw error(strFmt("Для версии %1 не реализовано",Version));
    }

    return getCOMConnectorProg;
}
макросы:

X++:
    #define.V80_COMConnector('V8.COMConnector')
    #define.V81_COMConnector('V81.COMConnector')
    #define.V82_COMConnector('V82.COMConnector')
__________________
Айрат Вильданов.
skype: vildanov.a
За это сообщение автора поблагодарили: Dron AKA andy (5), S.Kuskov (2), jeky (1), AlexSt (1).