DCOM配置的问题
我只想用dcom实现一个非常简单的功能:服务端是一个银行的功能,可以存钱、取钱、显示余额;客户端:MFC对话框程序,提供存取款的界面。
在客户端调用以下函数
//组件库初始化
hr = CoInitialize(NULL);
if (hr != S_OK)
{
return false;
}
//安全代码初始化
hr = CoInitializeSecurity(
NULL,
-1,
NULL,
NULL,
RPC_C_AUTHN_LEVEL_DEFAULT,
RPC_C_AUTHN_LEVEL_NONE,
NULL,
0,
NULL);
if (hr != S_OK)
{
return false;
}
//创建对象实例,并返回IUnknown指针
COSERVERINFO serverInfo = {0, L"192.168.19.56", NULL, 0};//组件服务器信息,venus-PC为组建服务器的计算机名字
MULTI_QI MultiQi = {&IID_IUnknown, NULL, NOERROR};
hr = CoCreateInstanceEx(CLSID_Account, NULL, CLSCTX_REMOTE_SERVER, &serverInfo, 1, &MultiQi);//CLSCTX_REMOTE_SERVER为远程进程外组件
if (hr != S_OK)
{
char tmp[16] = {'\0'};
sprintf(tmp, "%d", hr);
MessageBox(tmp);
}
pUnknown = (IUnknown *)MultiQi.pItf; //得到IUnknown指针
//通过IUnknown指针去查询接口指针,返回IAccount指针
hr = pUnknown->QueryInterface(IID_IAccount, (void**)&pAccount);
//IUnknown接口释放
pUnknown->Release();
在执行CoCreateInstanceEx时返回E_ACCESSDENIED.
问题1:返回E_ACCESSDENIED是DCOM的配置有问题吧?
问题2:我想去修改DCOM的配置,但是组件服务里面,右键“DCOM配置”没有“属性”选项。
Remote Procedure Call (RPC)
COM+ Event System
DCOM Server Process Launcher
Distributed Transaction Coordinator
这四个服务是开启的,
c:\******>cd %systemroot%\system32
c:\WINDOWS\system32>msdtc -uninstall
c:\WINDOWS\system32>msdtc -install
这操作我也执行了无数次,但“属性”选项一直不出现
我的系统是 win7 64bit,进入组件服务用的是“mmc comexp.msc /32”命令。“dcomcnfg”也试过,是一样的结果
工具是vs2008
请大牛们帮帮忙。我以前没有接触过DCOM相关的东西。
万分感谢。