CÓMO: Crear un componente con servicios .NET que utilice transacciones en Visual C# .NET

Seleccione idioma Seleccione idioma
Id. de artículo: 306296 - Ver los productos a los que se aplica este artículo
Este artículo se publicó anteriormente con el número E306296
Expandir todo | Contraer todo

En esta página

Resumen

Enterprise Services proporciona un puente .NET a los servicios de Microsoft COM+ 1.0. Este artículo paso a paso enseña cómo crear un componente con servicios .NET que usa transacciones, así como la manera de crear un cliente que comprueba su componente con servicios.

Notas importantes

  • Los componentes con servicios requieren nombres seguros.
  • Los componentes con servicios deben registrarse en la Caché de ensamblados global (GAC), porque son recursos del sistema. Las aplicaciones de servidor requieren la instalación en la GAC, pero no las aplicaciones de biblioteca (aunque es recomendable).
  • Puede registrar los componentes con servicios con COM+ bien automáticamente, mediante registro lento, o manualmente con la utilidad Regsvcs.exe. El archivo Regsvcs.exe está ubicado en la siguiente carpeta:
    \WINNT\Microsoft.NET\Framework\< Versión Framework >
    Para obtener más información acerca de Regsvcs.exe, consulte la documentación del Kit de desarrollo de software (SDK) de Microsoft .NET Framework.
  • En este ejemplo se supone que en el equipo local está instalado Microsoft SQL Server.
  • Este ejemplo sólo tiene propósito informativo. Hablando en sentido estricto, la consulta de selección de este ejemplo es un buen candidato para ejecutarse fuera de una transacción COM+, porque COM+ usa para la transacción el nivel de aislamiento más alto. Para mejorar el rendimiento de la base de datos, es una buena práctica de programación considerar las consultas de lectura para niveles de transacción inferiores.

Crear un componente con servicios .NET

  1. Crear un nuevo proyecto de biblioteca de clases de Visual C# llamado ServicedCOM.
  2. Cambie el nombre del archivo de clase predeterminado de Class1.cs a SimpleTrans.cs.
  3. Agregue una referencia al espacio de nombres System.EnterpriseServices.
  4. Agregue la declaración siguiente a SimpleTrans.cs (poco antes de la declaración de clase) y a AssemblyInfo.cs:
    using System.EnterpriseServices;
  5. Herede su clase de ServicedCOM.
  6. Agregue el código siguiente poco antes de la declaración de clase pública:
    [Transaction(TransactionOption.RequiresNew)]
  7. Agregue los siguientes atributos recomendados a AssemblyInfo.cs:
    [assembly: ApplicationActivation(ActivationOption.Library)]
    [assembly: ApplicationName("SimpleTrans")]	
    • El atributo ActivationOption indica si el componente se activará dentro del proceso del llamador. Puede establecer Activation.Option en Library o en Server.
    • El atributo ApplicationName es el nombre que aparece para la aplicación COM+ en el Catálogo COM+ y la consola Administración de servicios de componente.
  8. Agregue el siguiente atributo opcional a SimpleTrans.cs:
    [assembly: Description("Aplicación transaccional simple para mostrar Enterprise Services")]
    Este atributo proporciona una descripción para la aplicación COM+ en el Catálogo COM+ y la consola Administración de servicios de componente.
  9. Agregue el método siguiente a SimpleTrans.cs:
    // Demos Explicit SetComplete/SetAbort
            public string DoTrans()
            {
                SqlConnection	connection;
                SqlCommand		command;
                SqlDataReader	reader;
                string		name;
                string		query;
    		
                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(Exception exc)
                {
                    ContextUtil.SetAbort();
                    throw exc;
                }
                return name;
        }
    // Demo implicit SetComplete/SetAbort
    [AutoComplete]
    public void DoTxAuto()
    {
        // Do stuff
    }
  10. Modifique la cadena SqlConnection de manera adecuada para su entorno.

Dar a su ensamblado un nombre seguro

  1. En el menú Inicio, seleccione Programas, Microsoft Visual Studio .NET, y haga clic en Herramientas de Visual Studio .NET para abrir un símbolo del sistema de Visual Studio .NET.
  2. En el símbolo del sistema, escriba sn.exe -k ServicedCOM.snk para darle al ensamblado un nombre seguro.

    Para obtener información acerca de la firma de ensamblados con nombre seguro, consulte la documentación del SDK de .NET Framework.
  3. Copiar ServicedCOM.snk a la carpeta del proyecto.
  4. En AssemblyInfo.cs, reemplace el código AssemblykeyFile por el código siguiente:
    [assembly: AssemblyKeyFile("..\\..\\ServicedCOM.snk")]

Agregar su componente con servicios a COM+

Puede permitir que el componente se registre dinámicamente cuando se crea la primera instancia o puede registrar manualmente el componente con Regsvcs.exe. Para usar Regsvcs.exe, siga estos pasos:
  1. En el menú Inicio, seleccione Programas, Microsoft Visual Studio .NET, y haga clic en Herramientas de Visual Studio .NET para abrir un símbolo del sistema de Visual Studio .NET.
  2. En un símbolo del sistema .NET, escriba regsvcs servicedcom.dll . Así se crea una aplicación de biblioteca COM+ con el mismo nombre que el nombre de clase.

Probar su componente

  1. En Bloc de notas, abra un archivo de texto.
  2. Copie el código siguiente en el archivo:
    set o =createobject("ServicedCOM.SimpleTrans")
    
    MsgBox o.DoTrans()
  3. En el menú Archivo, haga clic en Guardar.
  4. En el cuadro de diálogo Guardar cómo, en el cuadro de texto Nombre de archivo, escriba Test.vbs . En la lista Guardar como tipo, haga clic en Todos los archivos y, a continuación, haga clic en Guardar.
  5. Haga doble clic en el archivo para ejecutar el ejemplo.

Propiedades

Id. de artículo: 306296 - Última revisión: viernes, 18 de enero de 2002 - Versión: 1.0
La información de este artículo se refiere a:
  • Microsoft Visual C# .NET 2002 Standard Edition
Palabras clave: 
kbhowto kbhowtomaster KB306296

Enviar comentarios

 

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