Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / опять вопрос про DCOM / 24 сообщений из 24, страница 1 из 1
01.06.2006, 14:38
    #33766141
Джек
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
опять вопрос про DCOM
Добрый день всем!
Вновь задаю вопрос по DCOM, в надежде что может кто-нибудь разобрался.
У меня COM-сервер на Windows 2003 Server, а клиент на Windows XP Service Pack 2. Я сконфигурировал машины как указано здесь .
Но всё равно при запуске клиента выскакивает ошибка E_ACCESSDENIED(Отказано в доступе), причем CoCreateInstanceEx срабатывает успешно, т.е. интерфейс создает, но при вызове метода этого интерфейса выскакивает ошибка E_ACCESSDENIED.
При запуске клиента с 98 все работает нормально.
Заранее большое спасибо!
...
Рейтинг: 0 / 0
01.06.2006, 14:45
    #33766162
rodb
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
опять вопрос про DCOM
>У меня COM-сервер на Windows 2003 Server, а клиент на Windows XP Service
Pack 2.

COM-сервер в виде сервиса? или приложение?


Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
01.06.2006, 14:52
    #33766183
Джек
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
опять вопрос про DCOM
в виде dll-сервера, ин-проц
...
Рейтинг: 0 / 0
01.06.2006, 15:04
    #33766229
Джек
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
опять вопрос про DCOM
...причем у меня на серверной машине(Windows 2003 Server) нет кнопок Edit Limits , как сказано в разделе Configuring DCOM Settings on the Server Machine
здесь
...
Рейтинг: 0 / 0
01.06.2006, 15:12
    #33766261
rodb
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
опять вопрос про DCOM
в 2003 SP2
посмотрите, там должна быть встроенная группа пользователей
DCOM USERS (что-то в этом роде)
попробуйте текущего пользователя включить в её состав.

в не SP2 IMHO вообще ничего не получится.


Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
01.06.2006, 18:40
    #33767140
Джек
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
опять вопрос про DCOM
Код: plaintext
1.
2.
3.
4.
5.
6.
в  2003  SP2
посмотрите, там должна быть встроенная группа пользователей
DCOM USERS (что-то в этом роде)
попробуйте текущего пользователя включить в её состав.

в не SP2 IMHO вообще ничего не получится.
Вы имеете ввиду серверную машину, т.е. Windows 2003 Server?
То есть нужен именно Windows 2003 Server SP 2 а не просто Windows 2003 Server?
...
Рейтинг: 0 / 0
01.06.2006, 19:14
    #33767214
rodb
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
опять вопрос про DCOM
>То есть нужен именно Windows 2003 Server SP 2 а не просто Windows 2003
Server?

да.
в SP 2 там как раз фикс проблемы DCOM


Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
01.06.2006, 19:14
    #33767215
Джек
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
опять вопрос про DCOM
...а в Windows XP SP2 группы с похожей на DCOM USERS нет.
...
Рейтинг: 0 / 0
01.06.2006, 19:20
    #33767230
Джек
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
опять вопрос про DCOM
Последний свой ответ я отослал не видя ещё Вашего ответа:-)
Теперь понятно.
Т.е. Windows 2003 Server SP 2 уже существует?
Я это спрашиваю, потому что сейчас на рамблере ввел Windows 2003 Server SP 2, и он мне ничего не нашёл.
...
Рейтинг: 0 / 0
01.06.2006, 19:42
    #33767280
rodb
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
опять вопрос про DCOM
Т.е. Windows 2003 Server SP 2 уже существует?

в этом то вся и проблема что дисков с Windows 2003 Server SP 2 пока в ходу
нет
а скачивать SP2 с сайта майкрософт накладно.


Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
01.06.2006, 19:48
    #33767290
Джек
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
опять вопрос про DCOM
Сейчас полазил в инете нашёл что уже в Windows 2003 Server SP 1 была добавлена группа
CERTSVC_DCOM_ACCESS,
Вы не её имели ввиду?
...
Рейтинг: 0 / 0
01.06.2006, 19:52
    #33767296
Джек
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
опять вопрос про DCOM
вот здесь
...
Рейтинг: 0 / 0
01.06.2006, 20:00
    #33767307
rodb
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
опять вопрос про DCOM
CERTSVC_DCOM_ACCESS,
Вы не её имели ввиду?


да.
буквально с пару месяцев назад я мучался с подобной проблемой.


Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
01.06.2006, 20:08
    #33767315
Джек
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
опять вопрос про DCOM
Уважаемый rodb, спасибо Вам большое за ответы!
Понятно что надо ставить хотя бы Windows 2003 Server SP 1.
Потом тогда продолжим разговор.
...
Рейтинг: 0 / 0
02.06.2006, 10:53
    #33767999
Alex_VC
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
опять вопрос про DCOM
А при после инициализации интерфейса параметры безопасности (CoSetProxyBlanket) применял?
...
Рейтинг: 0 / 0
02.06.2006, 13:12
    #33768552
Джек
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
опять вопрос про DCOM
я написал такое
SOLE_AUTHENTICATION_SERVICE* pacAuth = new
SOLE_AUTHENTICATION_SERVICE;

pacAuth->dwAuthnSvc = RPC_C_AUTHN_WINNT;
pacAuth->dwAuthzSvc = RPC_C_AUTHZ_NAME;
pacAuth->pPrincipalName = NULL;
pacAuth->hr = S_OK;
::CoInitializeSecurity(NULL,1,pacAuth,NULL,RPC_C_AUTHN_LEVEL_CONNECT,RPC_C_IMP_LEVEL_IMPERSONATE,NULL,EOAC_NONE,NULL);
в функции DllMain сервера.

И такое
COAUTHINFO aiAuthInfo;
::CoInitializeSecurity(NULL, -1, NULL, NULL,
RPC_C_AUTHN_LEVEL_NONE, RPC_C_IMP_LEVEL_IDENTIFY, NULL,
EOAC_NONE, NULL);
aiAuthInfo.dwAuthnSvc = RPC_C_AUTHN_WINNT;
aiAuthInfo.dwAuthzSvc = RPC_C_AUTHZ_NAME;
aiAuthInfo.dwAuthnLevel = RPC_C_AUTHN_LEVEL_CONNECT;
aiAuthInfo.pwszServerPrincName = NULL;
aiAuthInfo.dwImpersonationLevel =
RPC_C_IMP_LEVEL_IMPERSONATE;
aiAuthInfo.pAuthIdentityData = NULL;
aiAuthInfo.dwCapabilities = 0;
memset(&si, 0, sizeof(si));
si.pAuthInfo =&aiAuthInfo;
si.pwszName = T2W(pszIP);
MULTI_QI qi;
qi.pItf = NULL;
qi.hr = 0;
qi.pIID = &__uuidof(Iserver1_AP );
try
{
hr = CoCreateInstanceEx(CLSID_server1_AP, NULL,
CLSCTX_REMOTE_SERVER,
&si, 1, &qi );


if(FAILED(hr))
{

...
...
...
на клиенте.
А как надо?
...
Рейтинг: 0 / 0
02.06.2006, 20:31
    #33770031
rodb
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
опять вопрос про DCOM
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{

Comobj::CoInitFlags = COINIT_MULTITHREADED;
CoInitializeEx(NULL, COINIT_MULTITHREADED);
CoInitializeSecurity(NULL, -1, NULL, NULL, RPC_C_AUTHN_LEVEL_NONE,
RPC_C_IMP_LEVEL_ANONYMOUS, NULL, EOAC_NONE, NULL);



В сервер поставь.
могет поможет.


Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
03.06.2006, 09:08
    #33770325
Alex_VC
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
опять вопрос про DCOM
Джекя написал такое
SOLE_AUTHENTICATION_SERVICE* pacAuth = new
SOLE_AUTHENTICATION_SERVICE;

pacAuth->dwAuthnSvc = RPC_C_AUTHN_WINNT;
pacAuth->dwAuthzSvc = RPC_C_AUTHZ_NAME;
pacAuth->pPrincipalName = NULL;
pacAuth->hr = S_OK;
::CoInitializeSecurity(NULL,1,pacAuth,NULL,RPC_C_AUTHN_LEVEL_CONNECT,RPC_C_IMP_LEVEL_IMPERSONATE,NULL,EOAC_NONE,NULL);
в функции DllMain сервера.

И такое
COAUTHINFO aiAuthInfo;
::CoInitializeSecurity(NULL, -1, NULL, NULL,
RPC_C_AUTHN_LEVEL_NONE, RPC_C_IMP_LEVEL_IDENTIFY, NULL,
EOAC_NONE, NULL);
aiAuthInfo.dwAuthnSvc = RPC_C_AUTHN_WINNT;
aiAuthInfo.dwAuthzSvc = RPC_C_AUTHZ_NAME;
aiAuthInfo.dwAuthnLevel = RPC_C_AUTHN_LEVEL_CONNECT;
aiAuthInfo.pwszServerPrincName = NULL;
aiAuthInfo.dwImpersonationLevel =
RPC_C_IMP_LEVEL_IMPERSONATE;
aiAuthInfo.pAuthIdentityData = NULL;
aiAuthInfo.dwCapabilities = 0;
memset(&si, 0, sizeof(si));
si.pAuthInfo =&aiAuthInfo;
si.pwszName = T2W(pszIP);
MULTI_QI qi;
qi.pItf = NULL;
qi.hr = 0;
qi.pIID = &__uuidof(Iserver1_AP );
try
{
hr = CoCreateInstanceEx(CLSID_server1_AP, NULL,
CLSCTX_REMOTE_SERVER,
&si, 1, &qi );


if(FAILED(hr))
{

...
...
...
на клиенте.
А как надо?
Ну, можно примерно так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
USES_CONVERSION;
COAUTHIDENTITY  caid={A2W(szUserName)
                                 ,nLenUseName
                                 ,A2W(szDomain)
                                 ,nLenDomain
                                 ,A2W(szPwd)
                                 ,nLenPwd
                                 ,SEC_WINNT_AUTH_IDENTITY_UNICODE};
if(SUCCEEDED(hr))
   hr=CoSetProxyBlanket(qi.pItf
                              ,RPC_C_AUTHN_WINNT
                              ,RPC_C_AUTHZ_NONE
                              ,NULL
                              ,RPC_C_AUTHN_LEVEL_PKT_PRIVACY
                             ,RPC_C_IMP_LEVEL_IMPERSONATE
                             ,&caid
                             ,EOAC_NONE);
 if(SUCCEEDED(hr))
          qi.pItf->SomeMethos();
...
Рейтинг: 0 / 0
05.06.2006, 08:57
    #33771511
Джек
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
опять вопрос про DCOM
Добрый день всем!
rodb, скажите а где взять это CoInitFlags? компилятор ругается, что это не член моего COM-класса.
...
Рейтинг: 0 / 0
05.06.2006, 12:37
    #33772009
rodb
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
опять вопрос про DCOM
>скажите а где взять это CoInitFlags? компилятор ругается, что это не член
моего COM-класса.

а ты мотри куда я вставляю

WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{

Comobj::CoInitFlags = COINIT_MULTITHREADED;


Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
07.06.2006, 06:52
    #33776444
Джек
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
опять вопрос про DCOM
Добрый день всем!
rodb, а у меня нету
WinMain, поскольку у меня сервер in-proc у меня DllMain.
...
Рейтинг: 0 / 0
07.06.2006, 10:31
    #33776759
rodb
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
опять вопрос про DCOM
>а у меня нету
>WinMain, поскольку у меня сервер in-proc у меня DllMain.

а вы попробуйте DllMain
и потом мне скажите что получится.
Я сам не в курсах.


Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
07.06.2006, 11:49
    #33777074
Джек
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
опять вопрос про DCOM
дак я и не пойму чё такое
Comobj::CoInitFlags?
Я понимаю что Comobj это мой класс COM-объекта поэтому пишу так
Имя_моего_класса::CoInitFlags и компилятор ругается, что у моего класса нет такого CoInitFlags члена.
Если Comobj какой-то глобальный класс, то я не могу ничего найти о нем в MSDN, чтобы подключить файл в котором он объявлен, потому что так он тоже ругается, что нет такого класса.
...
Рейтинг: 0 / 0
07.06.2006, 12:08
    #33777158
rodb
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
опять вопрос про DCOM
У мне outproc сервер и
Comobj::CoInitFlags никаких инклюдов не просит.



Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / опять вопрос про DCOM / 24 сообщений из 24, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]