在XP系统中,不能访问COM+应用程序,怎么处理

在XP系统中,不能访问COM+应用程序,怎么办?
WindowsXP系统,sp2补丁,工作站都没有在域中。我使用ATL编写了一个COM+应用程序,使用VC远程调用,调用CoCreateInstancEX时,总是返回E_ACCESSDENIED,好像是安全问题,但是不知道怎么配置,那位能够帮助我,不胜感激。我的调用代码如下:
CoInitialize(NULL);

COSERVERINFO ServerInfo;
MULTI_QI MultiQI;
COAUTHINFO athn;

memset(&ServerInfo,   0,   sizeof(ServerInfo));
memset(&athn,   0,   sizeof(athn));

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 "HRML-DR ";
ServerInfo.pAuthInfo   =   &athn;
ServerInfo.dwReserved1   =   0;
ServerInfo.dwReserved2   =   0;

MultiQI.hr   =   NOERROR;
MultiQI.pItf   =   NULL;
MultiQI.pIID   =   &__uuidof(Pos_ServerLib::IPos_ADO);

HRESULT   hr   =   CoCreateInstanceEx(__uuidof(Pos_ServerLib::Pos_ADO),   NULL,CLSCTX_SERVER,   &ServerInfo,   1,&MultiQI);

Pos_ServerLib::IPos_ADOPtr   pap   =   (Pos_ServerLib::IPos_ADO   *)MultiQI.pItf;

hr   =   pap-> Open(_bstr_t( "HRML-DR "),   _bstr_t( "HCPACS_DB "),   _bstr_t( "sa "),   _bstr_t( "sasa "));
ADODB::Recordset15Ptr   pp   =   pap-> GetRecordset(_bstr_t( "SELECT   *   FROM   TabPatient "));
for(pp-> MoveFirst();   !pp-> AdoEOF;   pp-> MoveNext())
{
MessageBox((_bstr_t)pp-> GetCollect( "PatientID "));
}


------解决方案--------------------
xp,确实容易出现各种问题。

我不知道lz是所有的xp都是这个问题,还是单独就这一台xp是这个问题。
最好多找几台xp机子,多做一些测试。

我的一般做法是把应用程序中涉及到的dll,尽可能打包的xp中去。

------解决方案--------------------
不懂,帮忙顶个
------解决方案--------------------
是否缺少文件
------解决方案--------------------
CLSCTX_SERVER应该是CLSCTX_REMOTE_SERVER吧
服务器HRML-DR上是否dcom等服务都正常运行了?
有日志记录到什么信息吗?
你工作站上的用户是不是不能访问服务器呢?