服务组件框架_服务组件

本文深入解析服务组件框架在.NET COM+组件中的应用,探讨其优势如对象池、数据库连接池、共享资源等,并介绍如何通过设置权限控制组件访问,以及组件在多服务器间控制事务的能力。文章还详细说明了服务组件的激活、部署和调试过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

服务组件框架

在.Net COM +组件中,称为服务组件,

命名空间:System.EnterpriseServices;

服务组件的优势:

对象池

数据库连接池,

共享资源,

基于角色的安全性

分布式事务处理监控(COM +)

使用在其他服务器上注册的组件

那意味着

您可以重新使用组件,从而避免在每次请求时都创建该组件。

您可以设置权限,以便控制可以创建和调用组件\函数\方法的用户\组。

例如:您可以设置用户\帐户经理来调用财务组件,而用户\帐户经理来调用Finance.CreateBudget方法。

您可以通过多个服务器上的组件控制事务。 即,只有销售部分成功后,开票部分才会成功,而库存部分之后销售部分才成功。

激活:

您可以通过两种方式运行\激活服务组件

ActivationOption.Library .-(进程内)服务组件将通过指定值在客户端进程空间中激活

通过将ApplicationActivation属性设置为ActivationOption.Server,将在COM +可执行进程空间中激活ActivationOption.Server .-(进程外)程序集。

以上信息必须在AssemblyInfo中指定。

COM +服务器应用程序(服务的组件)在COM +可执行文件(dllhost.exe)的进程空间中运行。

装备:

Comvisible应该设置为true

程序集的StrongName

运行应用程序:

如果您在.Net IDE中运行应用程序,则.Net会自己创建Serviced组件。

通过服务器方法激活:

·通过管理工具打开组件服务。 您必须设置权限

通过将名为User和CreatorOwner的角色添加到组件的role文件夹中。 向这些角色添加可以访问组件的userid \组,并在组件的“属性”中设置标识,该组件将采用指定的标识进行激活。

·此外,您还需要使用命令开关i作为服务组件dll的参数调用gacutil实用程序。

通过库方法激活:

.Net IDE将为您提供一切

部署:

通常,有三种方法来部署.serviced组件:

使用Regsvcs命令行实用程序

此命令行实用程序将程序集的名称作为输入,通过读取程序集创建类型库,最后将对象注册到COM +。

使用.NET Framework提供的自动注册机制

在运行时,CLR(公共语言运行时)会基于程序集自动创建类型库,并且COM +使用类型库中提供的信息来安装对象。 这称为延迟注册,此方法仅适用于库应用程序。

使用作为System.EnterpriseServices命名空间一部分的RegistrationHelper类。

RegistrationHelper类的InstallAssembly方法可用于以编程方式向COM +注册.NET对象。

排解步骤:

服务器激活:

您必须为服务组件dll调用regsvcs。

调用服务组件dll的重排。

使用命令开关i作为参数调用gacutil实用程序。 用于服务组件dll。 确保将其安装在Windows \ Assembly文件夹中。

通过管理工具打开组件服务。 您必须设置权限

通过将名为User和CreatorOwner的角色添加到组件的role文件夹中。 向这些角色添加可以访问组件的userid \组,并在组件的“属性”中设置身份,组件将采用指定的身份进行激活。

库激活:

您必须为服务组件dll调用regsvcs。

代理的创建:

要从系统B调用系统A上可用的服务组件,请从系统A上可用的已注册com +(服务组件)中创建一个代理,然后在系统B上注册该代理。

调试

库激活:

您可以直接运行组件并在.Net IDE中进行调试

服务器激活:

您必须通过附加到dllhost.exe的进程进行调试,并且断点将在.NetIDE中被击中

服务组件的工作方式:

首先,它将CLR程序集注册为COM组件(就像您已经运行了程序集注册实用程序regasm.exe)一样。

其次,它发出一个COM类型库(就像您已经运行了程序集到类型库转换器tlbexp.exe),并使用它在COM +目录中部署了已配置的类(程序集中存在的类)。

然后,它默认创建程序集的ApplicationName和ApplicationActivation属性中描述的目标应用程序。

最后,它使用.NET Reflection API来查询程序集中已配置类的元数据,并使用该信息以编程方式更新COM +目录,以便每个类都具有适当的声明性属性设置。 如果配置的类没有特定的

声明性属性,regsvcs.exe将改用默认值

谢谢和Regs

巴拉斯·雷迪VasiReddy

翻译自: https://bytes.com/topic/net/insights/755368-serviced-component

服务组件框架

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值