各位前辈小弟初学COM+,编写了一个最简单的例子,在本机上客户端使用正常,可把客户端放到其它计算机上运行(不再同一个域下),就会报错。错误信息是”interface not supported“。各位前辈帮帮忙。分不够在加

解决方案 »

  1.   

    源码:
    服务器部分:
    unit Unit2;{$WARN SYMBOL_PLATFORM OFF}interfaceuses
      ComObj, ActiveX, MYEasyCOM_events_TLB, StdVcl,Forms,Windows,MMSystem;const
      Hell='你好';type
      TMYEasyCOM = class(TAutoObject, IMYEasyCOM)
      protected
        procedure SendShow(const Msg: WideString);safecall;
      end;implementationuses ComServ;
    procedure TMYEasyCOM.SendShow(const Msg:WideString);
    begin
      Application.MessageBox(PChar(String(Msg)),Hell,MB_ICONINFORMATION);
    end;initialization
      TAutoObjectFactory.Create(ComServer, TMYEasyCOM, Class_MYEasyCOM,
        ciMultiInstance, tmNeutral);
    end.
    客户端部分:
    unit App;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, MYEasyCOM_events_TLB,
      Dialogs, StdCtrls;type
      TForm1 = class(TForm)
        Button1: TButton;
        Edit1: TEdit;
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
        MyEasyCom:IMYEasyCOM;
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
    begin
      MyEasyCom:= CoMYEasyCOM.CreateRemote(Edit1.Text);
      MyEasyCom.SendShow('你好我是张弦');
    end;end.
      

  2.   

    客户端机器的登录名必须是应用服务器的用户。你可以用DCOMCNFG配置一下,让客户端用访问的权限。
    在服务端为每个客户端分发访问COM的权限后,应该就可以了
    COM+一个重要问题僦是如何正确在服务器中分发各种客户访问的权限。具体你可以
    1。把组件的属性页内的“安全性“内的身份验证级别设为“无“,
    把模拟级别设为“匿名”。
    2。把服务器的登陆用户名和密码改称和和客户端一样的用户名和密码。
      

  3.   

    在给个抄的总结方法:
    1、如果你的系统在一个域中,你将不会出现那个问题
    2、如果你的系统在工作组中,请将你客户端的WINDOWS登录口令设为空,如果不行,再将服务端的口令设为空
      

  4.   

    我刚才试过了还是抱错,出错信息没有变。我测试的俩台计算机都在WorkGroup中。是不是需要导出一个客户端呢?
    我该如何把我的COM+服务器正确的分发给各种客户访问呢?
      

  5.   

    你没有在服务器端注册你的COM+  regsvr32命令
      

  6.   

    http://support.microsoft.com/default.aspx?scid=FH;ZH-CN;complusfaq#4http://community.csdn.net/Expert/topic/3170/3170015.xml?temp=.4227411