如何:创建服务组件

以下过程介绍如何创建新的服务组件。

创建服务组件

  1. 定义一个从 ServicedComponent 类直接或间接派生的类。例如,以下代码可确保 Calculator 类由 COM+ 应用程序承载。

    Imports System.EnterpriseServices
    
    Public Class Account 
    Inherits ServicedComponent
        Function Add (x as Integer, y as Integer) As Integer
            Add = x + y
        End Function
    End Class
    
    using System.EnterpriseServices;
    
    public class Calculator : ServicedComponent
    {
        public int Add (int x, int y)
        {
            return(x+y);
        }
    }
    
  2. 应用属性以指示每个程序集、类或方法应如何与 COM+ 功能交互。

    Note注意:

    在 .NET Framework 1.1 版本中,如果程序集中不存在 ApplicationAccessControlAttribute 属性,则默认情况下启用 COM+ 安全配置。这是对来自 .NET Framework 1.0 版本的行为所做的更改。

    <Assembly: ApplicationName(“Calculator”)>
    <Assembly: System.Reflection.AssemblyKeyFile(“Calculator.snk”)>
    
    <MustRunInClientContext> _
    Public Class Account 
    Inherits ServicedComponent
        ‘ Member definitions.
    End Class
    
    [assembly: ApplicationName("Calculator")]
    [assembly: System.Reflection.AssemblyKeyFile("Calculator.snk")]
    
    [MustRunInClientContext]
    public class Calculator : ServicedComponent
    {
        // Member definitions.
    }
    
  3. 生成强密钥并编译以下示例:

    sn –k Calculator.snk
    vbc /t:library /r:System.EnterpriseServices.dll Calculator.vb
    
    sn –k Calculator.snk
    csc /t:library /r:System.EnterpriseServices.dll Calculator.cs
    
  4. 通过动态或手动注册服务组件应用程序的程序集来部署服务组件应用程序。

  5. 服务组件注册之后,客户端可以按照它们创建任何其他组件实例的方式来创建该组件的实例。有关完整的示例,请参阅服务组件示例

    Note注意:

    在 Windows 2000 平台上,COM+ 总是为您创建的组件加载最新版本的公共语言运行库。这意味着在同时安装有 .NET Framework 1.0 版和 .NET Framework 1.1 版的计算机上,总是加载 .NET Framework 1.1 版。解决方法是,您可以创建一个 COM+ dllhost.exe.configuration 文件,通过该文件可将所有应用程序“锁定”到特定的 .NET Framework 版本。在 Windows XP 和 Windows Server 2003 平台上,可使用应用程序根目录设置将 COM+ 指向其配置文件的相应目录。

示例

Imports System.EnterpriseServices

<Assembly: ApplicationName(“Calculator”)>
<Assembly: System.Reflection.AssemblyKeyFile(“Calculator.snk”)>

<MustRunInClientContext> _
Public Class Account 
Inherits ServicedComponent
    Function Add (x as Integer, y as Integer) As Integer
        Add = x + y
    End Function
End Class 
using System.EnterpriseServices;

[assembly: ApplicationName("Calculator")]
[assembly: System.Reflection.AssemblyKeyFile("Calculator.snk")]

[MustRunInClientContext]
public class Calculator : ServicedComponent
{
    public int Add (int x, int y)
    {
        return(x+y);
    }
}

请参见

参考

ServicedComponent

概念

应用属性以配置 COM+ 服务
注册服务组件
服务组件示例
可用的 COM+ 服务摘要

其他资源

编写服务组件

Footer image

版权所有 (C) 2007 Microsoft Corporation。保留所有权利。