如何在可视化 Basic.NET 或 Visual Basic 2005 中创建服务的.net 组件

文章翻译 文章翻译
文章编号: 312902 - 查看本文应用于的产品
本文已归档。它按“原样”提供,并且不再更新。
展开全部 | 关闭全部

本文内容

概要

本分步指南介绍演示如何创建使用事务的.net 服务的组件。本文还演示了如何创建一个测试您的服务的组件的客户端。Microsoft 企业服务提供了 Microsoft COM + 服务,以.net 组件。

重要说明

  • 使用服务组件的强名称。
  • 注册服务的组件在全局程序集缓存 (GAC) 因为它们是系统级资源。服务器应用程序安装在 GAC 中。Microsoft 建议您在 GAC 中中, 注册库应用程序尽管这不是一个要求。
  • 您可以使用下列方法之一与 COM + 注册服务的组件:
    • 惰性注册用于自动注册服务的组件。
    • 若要手动注册服务的组件使用 Regsvcs.exe 实用程序。Regsvcs.exe 位于以下文件夹:
      \WINNT\Microsoft.NET\Framework\ Framework Version
      有关 Regsvcs.exe 的详细信息,请参阅 Microsoft.net 框架软件开发工具包 (SDK) 文档。
  • 若要在这篇文章中使用该示例在本地计算机上安装 Microsoft SQL Server。
  • 此示例仅用于说明目的。您可以使用 SELECT 查询示例所示在 COM + 事务外因为 COM + 为交易记录使用最高的隔离级别。若要提高数据库的吞吐量,使用较低的事务级别读取查询。

创建服务的.net 组件

  1. 创建一个新的 Visual Basic 类库项目并将其命名 ServicedCOM
  2. 重命名 VBServCom 为默认类别。
  3. 添加对 System.EnterpriseServices 命名空间的引用。
  4. 键入或粘贴以下代码类语句前的:
    Imports System.EnterpriseServices
    Imports System.Data.SqlClient
    					
  5. 类语句后添加以下代码:
        Inherits EnterpriseServices.ServicedComponent
    					
  6. 下面的代码类语句前添加 (不要忘记行延续字符"_"):
    <Transaction(TransactionOption.RequiresNew)> _
    					
  7. 将以下属性添加到 AssemblyInfo.vb 文件:
    <assembly: ApplicationActivation(ActivationOption.Library)>
    <assembly: ApplicationName("SimpleTrans")>
    						
    说明
    • ActivationOption 属性指示是否将调用方的过程中启动该组件。您可以设置 Activation.Option服务器
    • ApplicationName 属性是显示在 COM + 目录和组件服务管理控制台将 COM + 应用程序的名称。
  8. 将下面的可选属性添加到该 AssemblyInfo.vb 文件:
    <Assembly: Description("Simple Transactional application to show Enterprise Services")>
    						
    该属性提供了 COM + 应用程序在 COM + 目录和组件服务管理控制台中的说明。
  9. 将下面的方法添加到默认 Class1.vb 或 VBServCom.vb 文件,如果您重命名文件和类:
        ' Shows Explicit SetComplete/SetAbort.
        Public Function DoTrans() As String
            Dim connection As SqlConnection
            Dim command As SqlCommand
            Dim reader As SqlDataReader
            Dim name As String
            Dim query As String
    
            Try
                query = "SELECT au_lname, au_fname FROM authors"
                connection = New SqlConnection("data source=localhost;initial catalog = pubs;UID=sa;PWD=")
                command = New SqlCommand(query, connection)
    
                connection.Open()
                reader = command.ExecuteReader()
    
                reader.Read()
                name = reader.GetString(0) & ", " & reader.GetString(1)
            Catch exc As Exception
                ContextUtil.SetAbort()
                Throw exc
            End Try
            DoTrans = name
        End Function
    
        ' Show implicit SetComplete/SetAbort.
        <AutoComplete(True)> _
        Public Sub DoTxAuto()
            'Do stuff
        End Sub
    					
  10. 修改 SqlConnection 字符串为您的环境。

为您的程序集提供强名称

  1. 单击 开始、 指向 程序、 指向 Microsoft Visual Studio.net,和然后单击以打开一个 Visual Studio.net 的 Visual Studio.net 工具 命令提示符。
  2. 命令提示符键入以下命令:
    sn.exe-k ServicedCOM.snk
    这样,您的程序集强名称。

    有关 Regsvcs.exe 的详细信息,请参阅 Microsoft.net 框架软件开发工具包 (SDK) 文档。
  3. 将 ServicedCOM.snk 复制到项目文件夹中。
  4. AssemblyInfo.vb 文件中将 AssemblykeyFile 代码替换下面的代码:
    <Assembly: AssemblyKeyFile("..\\..\\ServicedCOM.snk")>
    					

将您的服务的组件添加到 COM +

创建第一个实例时,您动态地注册该组件。也可以手动使用 Regsvcs.exe 注册该组件。若要用于 Regsvcs.exe 请按照下列步骤操作:
  1. 单击 开始,指向 程序、 指向 Microsoft Visual Studio.net,然后单击以打开.net 命令提示窗口的 Visual Studio.net 工具
  2. 在.net 命令提示符处键入 regsvcs servicedcom.dll

    这将创建一个 COM + 库应用程序具有与您的类名相同的名称。

测试您的组件

  1. 在微软记事本中打开一个文本文件。
  2. 将下面的代码复制到该文件:
    set o =createobject("VBServCOM.VBServCOM")
    
    MsgBox o.DoTrans()
    					
  3. 文件 菜单上单击 保存
  4. 文件名 框中键入 Test.vbs。在 保存类型 列表中单击 所有文件,,然后单击 保存
  5. 双击该文件以运行该示例。

属性

文章编号: 312902 - 最后修改: 2014年2月24日 - 修订: 5.5
这篇文章中的信息适用于:
  • Microsoft Enterprise Services (included with the .NET Framework) 1.0
  • Microsoft Visual .NET 2002 标准版
  • Microsoft Visual Basic .NET 2003 标准版
  • Microsoft Visual Basic 2005
关键字:?
kbnosurvey kbarchive kbmt kbhowtomaster KB312902 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 312902
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com