怎么样能做到到自动启动COM+
谢谢了

解决方案 »

  1.   

    自动启动?不知LZ说的意思是什么,是指com+编写win 服务吗?
      

  2.   

    是自动启动com吗?关于C#中COM+的使用大致是这样的:COM+需要服务器端和客户端,个人意见COM+更合适于B/S系统中。关于服务器构造是这样的:1、首先新建一个类库。(这里我们把它命名为TestCom)它会生成两个文件,AssemblyInfo.cs和Class1.cs2、添加新类( server.cs ) 3、添加引用( System.EnterpriseServices )4、回到Class1.cs 将其该为接口。using System;namespace TestCom { public interface Class1 { string test(); } }5、打开server.cs 的代码在代码Using 中添加引用:using System.EnterpriseServices将server.cs继承ServicedComponent,Class1。它会自动有个提示,按TAB。。具体代码如下:using System; using System.EnterpriseServices;namespace TestCom { /// <summary> /// server 的摘要说明。 /// </summary> public class server: ServicedComponent,Class1 { public server() { // // TOD 在此处添加构造函数逻辑 // } #region Class1 成员public string test() { string a = "mm"; return a; //随便传个string }#endregion } } 6、回到AssemblyInfo.cs,添加引用using System.EnterpriseServices;添加代码://将组件设置为服务器启动模式。 [assembly: ApplicationActivation(ActivationOption.Server) ]//制定应用服务器名称 [assembly: ApplicationName("Server")]接下来,给服务器程序一个强名称。(相当于注册)7、打开Visual Studio .Net2003 命令提示找到文件的地址,输入sn -k ,生成密匙比如我的文件在E盘,c#中,E:\C#\TestCom\TestCom > sn -k server.snk;server.snk为生成的文件名称,( 执行完成后,文件里会多出一个文件server.snk )8、强名称生成完后,回到程序中在AssemblyInfo.cs中最后几排,可以发现[assembly: AssemblyKeyFile(" ")]把文件路径写进去[assembly: AssemblyKeyFile("../../server.snk")]9、生成解决方案,在OBJ \ debug 中会有个TestCom.dll回到Visual Studio .Net2003 命令提示,到文件obj\debug目录下,执行regsvcs 命令,注册服务。我机器上是这样的E:\C#\TestCom\TestCom\obj\debug > regsvcs testCom.dll;这样,服务器就构建完成。打开我的电脑,控制面板,管理工具,组件服务,com+应用程序,现在我们可以看到com+中多了个,server这个就是你所建的服务器
    10、在server上按右键,打开属性,修改安全性:调用身份验证级别为:无,模拟级别为标识。授权下的勾去掉( 这些是根据情况需要更改的,现在仅仅做个本机上的列子)。然后找到激活,远程服务器名称改成你自己机器的IP地址。 11、建立客户端。建一个winfrom加入引用:using System.EnterpriseServicesusing TestCom;在客户端要引用的地方new 一下就可以直接用其中的方法了。