DCOM удаленно: E_ACCESSDENIED
От: xrc2  
Дата: 19.08.08 10:03
Оценка:
WinXp Sp2 (Client & Server)

Есть простой сервер и клиент. На одной к.н. машине через локалхост работает отлично!
Но удаленно клиент не может законектиться к серверу — выходит ошибка E_ACCESSDENIED.
Нашел множество статей для устранения ошибки доступа к DCOM — но ничего не помогает!
Менял права для всех ATL серверов и для моего ATL сервера через dcomcnfg — давал всем полный доступ. Ничего не помогает.

Подключаюсь к серверу анонимно.
Собственная политика безопастности для приложения стоит как на сервере так и на клиенте:
CoInitializeSecurity(NULL, -1, NULL, NULL, RPC_C_AUTHN_LEVEL_NONE, RPC_C_IMP_LEVEL_IMPERSONATE, NULL, EOAC_NONE, NULL);




Подключаюсь так:

COSERVERINFO serverInfo;
    ZeroMemory(&serverInfo, sizeof(COSERVERINFO));

    COAUTHINFO athn;
    ZeroMemory(&athn, sizeof(COAUTHINFO));

    // Set up the NULL security information
    athn.dwAuthnLevel = RPC_C_AUTHN_LEVEL_NONE;
    athn.dwAuthnSvc = RPC_C_AUTHN_WINNT;
    athn.dwAuthzSvc = RPC_C_AUTHZ_NONE;
    athn.dwCapabilities = EOAC_NONE;
    athn.dwImpersonationLevel = RPC_C_IMP_LEVEL_IMPERSONATE;
    athn.pAuthIdentityData = NULL;
    athn.pwszServerPrincName = NULL;

    serverInfo.pwszName = L"\\\\PC_NAME";
    serverInfo.pAuthInfo = &athn;
    serverInfo.dwReserved1 = 0;
    serverInfo.dwReserved2 = 0;

        MULTI_QI qi = {&IID_IHelloWorld, NULL, S_OK};

        HRESULT hResult = CoCreateInstanceEx(CLSID_HelloWorld, NULL, CLSCTX_LOCAL_SERVER | CLSCTX_REMOTE_SERVER, &serverInfo, 1, &qi);



На сервер категорически не пускает! Почему? как можно определить в чем проблема?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.