COM+服务器的.Net组件实现 - 服务器端

闲来无事,用C#控件(Class Library)作个了简单的双机互连COM+示例

1. 准备工作:两台主机,各自软件配置分别为
1. 服务器:Vs.net 2003 + .Net Framework 1.1 SDK SP1 + WinXP pro SP2
1. 客户端:.Net Framework 1.1 SP1 Distributed Package + WinXP pro SP2

2. 在服务器上新建一个C# Class Library工程,将System.EnterpriseServices.dll添加进项目引用

3. 开启Vs.net 2003命令提示控制台,在%Project Directory%目录下生成一个用于组件签名的密钥对,输入
3. sn -k keyfile.snk

4. 修改项目的AssemblyInfo.cs文件,在其中添加引用声明:
None.gif using  System.EnterpriseServices;
4. 同时修改/添加其中几行Assembly定义属性:
None.gif [assembly: AssemblyDelaySign( false )]
None.gif[assembly: AssemblyKeyFile(
" ..\\..\\keyfile.snk " )]
None.gif[assembly: AssemblyKeyName(
"" )]
None.gif
None.gif[assembly: ApplicationActivation(ActivationOption.Server)]
None.gif[assembly: ApplicationAccessControl(
false )]

5. 修改项目Class1.cs文件,添加COM+服务器组件的主体内容如下:
None.gif using  System;
None.gif
using  System.EnterpriseServices;
None.gif
None.gif
namespace  ccc
ExpandedBlockStart.gifContractedBlock.gif
dot.gif {
InBlock.gif    
public interface IMathEx
ExpandedSubBlockStart.gifContractedSubBlock.gif    
dot.gif{
InBlock.gif        
int sum(int a,int b);
ExpandedSubBlockEnd.gif    }

InBlock.gif    
public class Test: ServicedComponent,IMathEx
ExpandedSubBlockStart.gifContractedSubBlock.gif    
dot.gif{
InBlock.gif        
public Test()
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{
ExpandedSubBlockEnd.gif        }

InBlock.gif
ContractedSubBlock.gifExpandedSubBlockStart.gif        
IMathEx 成员#region IMathEx 成员
InBlock.gif        
public int sum(int a,int b)
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{
InBlock.gif            
return a+b;
ExpandedSubBlockEnd.gif        }

ExpandedSubBlockEnd.gif        
#endregion

ExpandedSubBlockEnd.gif    }

ExpandedBlockEnd.gif}
5. 其中,我们在组件名空间ccc中定义了一个IMathEx接口,里面只有一个求和函数,而类Test实现了这个接口

6. 编译工程项目,%Project Directory%\bin\debug目录下将生成ccc.dll和ccc.tlb两个文件

7. 在%Project Directory%\bin\debug目录下手工注册Assembly至COM+目录,键入命令:
7. regsvcs -appname:MyApp ccc.dll

8. 至此服务器端组件开发、部署完毕
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值