Cómo crear un cliente-servidor DCOM con eventos mediante Visual Basic

Seleccione idioma Seleccione idioma
Id. de artículo: 267836 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

En esta página

Resumen

En este artículo se muestra cómo crear, empaquetar e implementar una aplicación de cliente/servidor del modelo de objetos componentes distribuido (DCOM) con eventos mediante Visual Basic. Para crear una aplicación de cliente/servidor DCOM, necesitará la edición Enterprise de Visual Basic. Microsoft se supone que el lector ya está familiarizado con la creación de aplicaciones cliente/servidor con eventos que se ejecutan en el mismo equipo.

Más información

No es necesario cambiar el código para habilitar una aplicación cliente crear instancias de un servidor remoto mediante DCOM. La diferencia es la forma en que empaquetar y distribuir al cliente. Además, hay algunas configuraciones de seguridad que tiene que hacer después de instalan el cliente y el servidor. Puede realizar esta configuración mediante una utilidad denominada DCOMCNFG. En concreto, cuando el servidor provoca eventos, son no sólo la configuración del servidor importante, pero el cliente que son demasiado.

Los pasos siguientes muestran cómo distribuir y configurar una aplicación de servidor de cliente simple. Llamar al servidor DCOMDemoEvents_Svr y el cliente DCOMDemoEvents_Cli. Crear una carpeta independiente para cada uno de ellos y, con el propósito de este artículo, nombre la carpetas c:\DCOMDemoEvents\Server y c:\DCOMDemoEvents\Client.

Crear el servidor

  1. Inicie un nuevo proyecto de Visual Basic. En el cuadro de diálogo Nuevo proyecto , seleccione EXE de ActiveX y, a continuación, haga clic en Abrir . Class1 se crea de forma predeterminada.
  2. Agregue el código siguiente al módulo de Class1:
    Option Explicit
    
    Public Event TimeUpdate(sTime As String)
    
    Public Sub CallMeBack()
        RaiseEvent TimeUpdate(Time())
        
    End Sub
    
    Public Function ServerTime() As String
        
        ' this method was included just in case we need
        ' to test a method without call back.
        ServerTime = Time
        
    End Function
    					
  3. En el menú proyecto , haga clic en la opción Propiedades del proyecto .
  4. Seleccione la ficha General .
  5. En el campo Nombre de proyecto , escriba DCOMDemoEvents_Svr .
  6. En el campo Descripción del proyecto , escriba DCOMDemoEvents_Svr - Server .
  7. Seleccione la ficha componentes y, a continuación, seleccione la opción Archivos de servidor remoto .

    Nota : al seleccionar esta opción hace que el compilador de Visual Basic genere los archivos VBR y TLB necesarios para empaquetar las aplicaciones cliente que utilizan este servidor. Los archivos contienen entradas del registro que deben incluirse en el equipo cliente.
  8. Cierre el cuadro de diálogo Propiedades del proyecto .
  9. En el menú archivo , seleccione Guardar como y guarde este proyecto a la carpeta c:\DCOMDemoEvents\Server.
  10. En el menú archivo , seleccione Crear DCOMDemoEvents_Svr y compile el servidor.
  11. En el menú proyecto , seleccione la opción Propiedades del proyecto y, a continuación, seleccione la ficha componentes . En la ficha componentes , seleccione Compatibilidad de versiones , seleccione la opción Compatibilidad binaria y, a continuación, hacer el binario de proyecto compatible con el archivo ejecutable del servidor acaba de crear (DCOMDemoEvents_Svr.exe). Haciendo clic en esta opción, se garantizará todos los GUID se mantienen el mismo si vuelve a compilar el servidor.

Crear el cliente

  1. En el menú archivo , seleccione la opción Nuevo proyecto , seleccione EXE estándar y haga clic en Aceptar . Se creará Form1 de manera predeterminada.
  2. En el menú proyecto , haga clic en la opción Propiedades del proyecto y, a continuación, seleccione la ficha General .
  3. En el campo Nombre de proyecto , escriba DCOMDemoEvents_Cli .
  4. En el campo Descripción del proyecto , escriba DCOMDemoEvents_Cli proyecto - cliente y, a continuación, haga clic en Aceptar para cerrar el cuadro de diálogo Propiedades del proyecto .
  5. En el menú proyecto , seleccione referencias y agregue una referencia a DCOMDemoEvents_Svr - Server .
  6. En la sección General Declarations de Form1, incluya la línea siguiente:
    Dim WithEvents MyEventObj As DCOMDemoEvents_Svr.Class1
    					
    se declara el objeto de servidor con eventos. Después de escribir en esta línea, debe ver MyEventObj en la lista de objetos de este formulario. La lista de objetos del formulario se encuentra en el cuadro combinado de superior izquierda en el módulo del formulario código.

  7. En la lista de objetos del formulario, seleccione MyEventObj . Sub MyEventObj_TimeUpdate se crea el vacío. Escriba en la siguiente línea de código:
    MsgBox "Event from Server received. Time=" & sTime
    					
  8. Coloque un botón de comando en Form1 y cambie el título del botón a ejecutar con eventos .
  9. Coloque el código siguiente en el botón de evento click:
        On Error GoTo err1
        
        Set MyEventObj = CreateObject("DCOMDemoEvents_Svr.Class1")
        MyEventObj.CallMeBack
        Exit Sub
    
    err1:
        MsgBox "Error: " & Err.Number & " - " & Err.Description
    					
  10. Coloque un segundo botón de comando en Form1 y cambie el título del botón a ejecutar sin eventos .
  11. Coloque el código siguiente en el botón de evento click:
        Dim MyObj As DCOMDemoEvents_Svr.Class1
        
        On Error GoTo err1
        
        Set MyObj = CreateObject("DCOMDemoEvents_Svr.Class1")
        MsgBox "Server time without events: " & MyObj.ServerTime
        Exit Sub
    err1:
        MsgBox "Error: " & Err.Number & " - " & Err.Description
    					
  12. Una vez hecho esto, el código del formulario debe parecerse al siguiente:
    Option Explicit
    Dim WithEvents MyEventObj As DCOMDemoEvents_Svr.Class1
    
    Private Sub Command1_Click()
    
        On Error GoTo err1
        
        Set MyEventObj = CreateObject("DCOMDemoEvents_Svr.Class1")
        MyEventObj.CallMeBack
        Exit Sub
    err1:
        MsgBox "Error: " & Err.Number & " - " & Err.Description
           
    End Sub
    
    Private Sub Command2_Click()
        Dim MyObj As DCOMDemoEvents_Svr.Class1
        
        On Error GoTo err1
        
        Set MyObj = CreateObject("DCOMDemoEvents_Svr.Class1")
        MsgBox "Server time without events: " & MyObj.ServerTime
        Exit Sub
    err1:
        MsgBox "Error: " & Err.Number & " - " & Err.Description
        
    End Sub
    
    Private Sub MyEventObj_TimeUpdate(sTime As String)
        MsgBox "Event from Server received. Time=" & sTime
    
    End Sub
    					
  13. En el menú archivo , seleccione Guardar como y guarde el proyecto en carpeta del cliente, c:\DCOMDemoEvents\Client.
  14. Presione el botón F5 para ejecutar al cliente en el IDE y probarlo. Tenga en cuenta que esta prueba es local al equipo de desarrollo en este momento. Se está ejecutando el local servidor EXE de ActiveX.
  15. En el menú archivo , seleccione Crear DCOMDemoEvents_Cli para compilar al cliente y, a continuación, cierre Visual Basic.

El servidor de paquete

Utilizar el Asistente de empaquetado y distribución para empaquetar el servidor de distribución como de costumbre. El servidor se crean instancias por un cliente remoto mediante DCOM. Al crear el paquete para el servidor, aparece un cuadro de diálogo que le pregunta si se utilizará este servidor como un servidor de automatización remota y desea incluir archivos de soporte técnico para este propósito. Simplemente haga clic en NO , porque DCOM no es la automatización remota. Automatización remota es una tecnología más antigua que reemplazó DCOM.

Empaquetar el cliente

Cuando se empaqueta el cliente, hay algunos pasos específicos que deben realizarse, teniendo en cuenta que el servidor no se ejecuta en el mismo equipo que el cliente. Los cambios realizados en paquete del cliente garantizan que se instala sólo la biblioteca de tipo (archivo .tlb) y algunas entradas del registro adicionales se incluyen en lugar del archivo ejecutable del servidor en el equipo del cliente. No necesita el archivo ejecutable del servidor instalado en el equipo del cliente porque no se va a ejecutar existe.

Empaquetar al cliente siga estos pasos:
  1. Inicie el Asistente de empaquetado y distribución y, a continuación, seleccione proyecto del cliente. Haga clic en el botón de paquete .
  2. En el cuadro de diálogo Tipo de paquete , seleccione el Paquete de instalación estándar y, a continuación, haga clic en siguiente .
  3. En el cuadro de diálogo Carpeta de paquete , seleccione la carpeta donde está almacenado el paquete y, a continuación, haga clic en Siguiente. En este caso, es c:\DCOMDemoEvents\Client\Package.

    Nota : se puede aparece un cuadro de diálogo indicando que no hay ninguna información de dependencia de su servidor. Haga clic en Aceptar porque el servidor no tiene dependencias.

    Ahora debería estar en el cuadro de diálogo Archivos incluidos .

    La selección de archivo ejecutable del servidor, DCOMDemoEvents_Svr.exe. Desea distribuir el archivo ejecutable del servidor.
  4. Haga clic en el botón Agregar y cambie el cuadro combinado de Tipo de archivos de servidor remoto (*.vbr) .
  5. Seleccione la carpeta que tiene el proyecto, en este caso, c:\DCOMDemoEvents\Server y, a continuación, seleccione el VBR relacionado archivo DCOMDemoEvents_Svr.VBR del servidor.
  6. Haga clic en Abrir y se cierra el el cuadro de diálogo Agregar archivo . Nota que se incluyen dos archivos, DCOMDemoEvents_Svr.VBR y DCOMDemoEvents_Svr.TLB. haga clic en siguiente .
  7. En el cuadro de diálogo Servidores remotos , definir el nombre del equipo (dirección de red) donde el servidor ejecutará.

    Normalmente mantener este campo en blanco porque es posible que no sabe de antemano donde está instalado el servidor. Si mantiene en blanco, se le pedirá que al instalar el cliente. En este ejemplo, manténgalo en blanco.

    Haga clic en siguiente para continuar. Ahora puede proseguir con los procedimientos estándar de paquete y Asistente para implementación. En nuestro ejemplo, haga clic en siguiente en todos los restantes cuadros de diálogo.

Instalar el servidor

Instalar al servidor en el equipo en el que desea ejecutarlo, utilizando el paquete de distribución que creó anteriormente. Si desea utilizar el equipo de desarrollo para ejecutar el servidor, no deberá instalarlo porque Visual Basic realiza el registro cuando compila el servidor.

Instalar el cliente

Instale al cliente en el equipo en el que desea ejecutarlo, utilizando el paquete de distribución que creó anteriormente. Dado que este cliente utiliza un servidor DCOM y deja la ubicación real del servidor en blanco cuando creó el paquete de distribución, ahora tiene que proporcionar esta ubicación. Cuando programa de instalación le pida esta ubicación, proporcione el nombre del equipo donde instaló el servidor.

Configurar la seguridad del servidor

Si instaló al servidor en un equipo de Microsoft Windows NT o Microsoft Windows 2000, deberá configurar la seguridad para él. Para ello, uso de DCOMCNFG, tal como se muestra en los siguientes pasos se supone que los equipos cliente y servidor son parte de un dominio y usuario ha iniciado la sesión el equipo cliente ha iniciado sesión como un usuario de dominio. La configuración sugerida es simplemente una configuración posible. Son muy genéricos y dar acceso amplia al servidor. Recuerde que esto es sólo un ejemplo. Cuando implementa sus aplicaciones reales y la seguridad es una preocupación para su entorno, debería seleccionar las opciones más restrictivas. Además, si el equipo que utiliza para probar este servidor de ejemplo se utiliza para ejecutar otros servidores, tome nota de la configuración actual antes de realizar los siguientes cambios y volver a la configuración original tan pronto como haya terminado con las pruebas.
  1. En el equipo servidor, haga clic en el botón Inicio y, a continuación, seleccione Ejecutar . En el cuadro de diálogo Ejecutar , escriba DCOMCNFG y haga clic en Aceptar . Debe tener derechos de administrador para poder ejecutar DCOMCNFG.
  2. Seleccione la ficha Propiedades predeterminadas y compruebe que Habilitar COM distribuido en este equipo está activada.
  3. Establezca el nivel de autenticación predeterminado para Conectar y establezca el nivel de representación predeterminado para identificar .
  4. Seleccione la ficha Seguridad predeterminada .
  5. Haga clic en el botón Editar valores predeterminados en el panel Permisos de acceso predeterminados .
  6. Compruebe que todos y sistema están incluidos en la lista con derechos permitir acceso. Si no lo están, puede utilizar el botón Agregar para agregar a la lista. Haga clic en Aceptar cuando la lista esté completa.
  7. Haga clic en el panel Permisos de inicio predeterminados el botón Modificar predeterminados .
  8. Compruebe que todos y sistema están incluidos en la lista con los permisos de Allow Launch. Si no lo están, utilice el botón Agregar para agregar a la lista. Haga clic en Aceptar cuando la lista esté completa.
  9. Seleccione la ficha aplicaciones , resalte su servidor, DCOMDemo_Svr.Class1 y a continuación, haga clic en el botón Propiedades .
  10. Seleccione la ficha General , establezca el nivel de autenticación en predeterminado y, a continuación, seleccione la ficha ubicación . La única opción activada debería ser ejecutar la aplicación en este equipo .
  11. Seleccione la ficha seguridad y compruebe que están activadas las utilizar permisos de acceso predeterminada y las opciones de permisos de inicio predeterminada de usar .
  12. Seleccione la ficha identidad , active opción el usuario de inicio , haga clic en Aceptar para cerrar el cuadro de diálogo Propiedades del servidor y, a continuación, hacer clic en Aceptar para cerrar DCOMCNFG. Como puede ver, el servidor de prueba utiliza toda la configuración predeterminada. Al implementar sus propios servidores, debe definir la configuración específica a la aplicación. Todas las configuraciones personalizadas tienen prioridad sobre las predeterminadas.

    Ahora está listo para probar el servidor. En el equipo cliente, inicie al cliente y, a continuación, haga clic en el botón Ejecutar . Verá un cuadro de mensaje que indica la hora del servidor. Si no se puede probar este ejemplo correctamente, consulte que el artículo de solución de problemas, Q269330, enumerado en la sección "Referencias".

Establecer la seguridad de cliente

Porque el servidor DCOM expone eventos que consume la aplicación de cliente, también debe establecer permisos de DCOM en el equipo cliente para permitir que el servidor realizar devoluciones de llamadas al cliente. Si el servidor DCOM no expone eventos o si la aplicación cliente no me consume eventos, no es necesario realizar este paso.
  1. En el equipo cliente, haga clic en Inicio y, después, haga clic en Ejecutar .
  2. En el cuadro de diálogo Ejecutar , escriba DCOMCNFG y haga clic en Aceptar .

    Debe tener derechos de administrador para ejecutar DCOMCNFG .
  3. Haga clic en la ficha Propiedades predeterminadas y, a continuación, compruebe que Habilitar COM distribuido en este equipo está activada.
  4. Establecer el Nivel de autenticación predeterminado para conectarse y establezca el Nivel de representación predeterminado para identificar .
  5. Haga clic en la ficha Seguridad predeterminada .
  6. Haga clic en el botón Editar valores predeterminados en el panel Permisos de acceso predeterminados .
  7. Compruebe que todos y sistema están incluidos en la lista con Derechos de acceso permitir . Si no están incluidos en la lista, utilice el botón Agregar para agregar a la lista. Haga clic en Aceptar cuando la lista esté completa.

Referencias

Para obtener información adicional acerca de las aplicaciones cliente-servidor DCOM, haga clic en los números de artículo siguientes para verlos en Microsoft Knowledge Base:
266717Cómo crear una aplicación de cliente/servidor DCOM mediante Visual Basic
268550Cómo usar DCOMCNFG para una aplicación cliente-servidor DCOM de Visual Basic
182248Cómo usar DCOMCNFG (Dcomcnfg.exe) con Windows 95 y Windows 98
269330Cómo solucionar problemas de DCOM para aplicaciones de cliente/servidor de Visual Basic
183607Cómo configurar DCOM para Visual Basic mediante dcomcnfg.exe

Propiedades

Id. de artículo: 267836 - Última revisión: martes, 29 de junio de 2004 - Versión: 3.1
La información de este artículo se refiere a:
  • Microsoft Visual Basic Enterprise Edition for Windows 6.0
  • Microsoft Visual Basic 6.0 Professional Edition
Palabras clave: 
kbmt kbdevsecurity kbdcom kbhowto KB267836 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 267836

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