¿Por qué no puedo depurar componentes COM+ en Visual Basic 6 y ASP? | Express IT: ¿Por qué no puedo depurar componentes COM+ en Visual Basic 6 y ASP?

sábado, 29 de abril de 2006

¿Por qué no puedo depurar componentes COM+ en Visual Basic 6 y ASP?

Reactions: 
Cuando ejecutamos el codigo de un componente COM+ en VB 6 con el proposito de depurarlo y este tiene como cliente una página ASP, es posible que en el navegador aparezca este mensaje de error:
Server object, ASP 0178 (0x800A0005) The call to Server.CreateObject failed while checking permissions. Access is denied to this object.

Esto se debe a que el sitio web esta configurado para permitir accesos anónimos y la cuenta IUSR_ no tiene los permisos para acceder al servidor DCOM, que en este caso es VB6.exe, como VB6.exe se ejecuta como el usuario identificado en el sistema y la aplicación web como el usuario interactivo, no tienen los mismos permisos y ocurre el error. Microsoft en su Knowledge Base Article - 259725 nos explica esto más a fondo y sugiere dos soluciones. Aquí solo se describe una, por considerar que es la más apropiada para la mayoria de los casos.

1. En el bloc de notas crea el archivo Vbaspdbg.reg (te recomiendo copiar y pegar el texto ya que es sensitivo a mayúsculas y minúsculas):
REGEDIT4
[HKEY_CLASSES_ROOT\CLSID\{70F214BA-94E2-4bdf-8F30-32CB4A905E4D}]
@="VB ASP Debugging"
[HKEY_CLASSES_ROOT\CLSID\{70F214BA-94E2-4bdf-8F30-32CB4A905E4D}\LocalServer32]
@="vb6.exe"
[HKEY_CLASSES_ROOT\AppID\vb6.exe]
"AppId"="{70F214BA-94E2-4bdf-8F30-32CB4A905E4D}"

2. En la carpeta dende guardaste este archivo hazle doble clic para agregarlo al registro de Windows.

3. Ahora solo tenemos que agregar la cuenta Todos a los permisos de DCOM para depurar nuestros componentes de Visual Basic.

Windows 2000
En en la opcion de ejecutar del menu de inicio ejecuta dcomcnfg
En la etiqueta Aplicaciones selecciona VB ASP Debugging de la lista y haz clic en Propiedades.
En la etiqueta Seguridad selecciona Usar permisos de acceso personalizados y haz clic en modificar para agregar la cuenta Todos
Re-inicia la computadora para que los cambios tengan efecto.

Windows XP
Ejecuta Servicios de componentes del menu de herramientas administrativas.
Expande Servicios de componentes, expande Equipos, expande Mi PC y expande Configuración DCOM.
Haz clic con el boton derecho en VB ASP Debugging y seleciona Propiedades.
En la etiqueta Sguridad selecciona Personalizar en Permisos de acceso y haz clic en modificar.
Agrega la cuenta Todos.
Re-inicia la computadora para que los cambios tengan efecto.