2010-11-20 8 views
5

Recientemente me actualicé de XP a Win 7. Solía ​​ser capaz de depurar desde una aplicación ASP clásica en VB6. Sin embargo ahora consigo una:Depuración de IIS7 VB6

"la llamada a Server.CreateObject durante la comprobación de permisos de acceso denegado a este objeto."

Esto sólo occurrs cuando inicio el DLL en Visual Basic 6 y acceder a las Aplicación ASP. Antes de IIS7, esto le permitiría ingresar al dll VB6. ¿Algunas ideas?

+0

¿Ha intentado ejecutar VB6 como administrador? –

+0

He respondido esto aquí http: // stackoverflow.com/questions/8728958/how-can-i-debug-a-vb6-iis-application-on-windows-7-64-bit/14165582 # 14165582. – yuben

Respuesta

2

Al depurar componentes VB6 de una aplicación ASP, este error suele ser causado por un problema de configuración DCOM. El VB IDE (VB6.exe) no tiene una entrada DCOM y, de manera predeterminada, la cuenta ISS no tendrá los permisos adecuados.

Este artículo describe cómo solucionar este problema. http://support.microsoft.com/kb/q259725/

1

yo sólo he encontrado con el mismo problema, y ​​después de aplicar los anteriores 'fija', todavía tenía un problema. Descubrí que al asegurarme de que la aplicación web tenía desactivada la autenticación anónima (usé la autenticación de Windows en su lugar), finalmente pude depurar vb6 de la ASP clásica.

De esto no puedo si la entrada de registro o los permisos de DCOM cambian (ambos de q259725), contribuyeron a la corrección.

Espero que esto ayude a alguien!

3

Recientemente he tenido la misma experiencia yendo de WinXP a Win7 en nuestro entorno de desarrollo y tuve exactamente el mismo pesar con algunas de nuestras aplicaciones heredadas. Así es como lo arreglé.

Para ser claros, nuestro sitio web ASP clásico realiza llamadas a nuestros .dlls internos de VB6 y fueron estos archivos .dll los que quería poder intervenir y depurar.

permitir que las aplicaciones de 32 bits

En la sección Grupos de aplicaciones, haga clic derecho en el grupo de aplicaciones de la página web y seleccionar 'Configuración avanzada'.

  • Cambie 'Habilitar aplicaciones de 32 bits' a 'Verdadero'.

  • Cambie el 'Modo de canal gestionado' a 'Clásico'.

autenticación de ASP

como ha sugerido @GregWoods, comprobar los detalles de autenticación de la página web en IIS, como sigue:

  • autenticación anónima - desactivado
  • ASP.Net Suplantación de identidad - DISABLED
  • Autenticación básica - HABILITADO
  • autenticación de formularios - desactivado
  • autenticación de Windows - ENABLED

Lance la aplicación VB6 dentro del IDE de Visual Basic y abra un navegador web; navegue al sitio web y cuando el código ingrese al .dll de VB6 externo, el entorno de Visual Basic 6 ahora debe detenerse en los puntos de interrupción establecidos en su código. Ta da.

Un paso más ??

También quería poder depurar las páginas ASP clásicas reales desde VS2010 o VS2012 ... lo cual es totalmente posible también, pero hay un paso adicional para agregar a esta lista, simplemente para indicarle a IIS que:

En IIS, haga clic en el sitio web que creó anteriormente y en la vista Características, haga clic en 'ASP'.

  • Expande el grupo de opciones 'Propiedades de depuración'.

  • Cambie 'Habilitar depuración del lado del cliente' a 'Verdadero'.

  • Cambie 'Habilitar depuración del lado del servidor' a 'Verdadero'.

  • Haga clic en 'Aplicar' para guardar. (Esquina superior derecha del panel Acciones).

Luego, con el fin de hacer parada de Visual Studio en un punto de interrupción, usted tiene que conectar con el proceso:

  • Ir al menú 'Herramientas' y seleccione 'Asociar al proceso .. .'

  • Cambiar el 'Adjuntar a' opción 'automático: código nativo'

  • Seleccione la 'w3wp.exe' proceso y haga clic en 'Adjuntar'.

Ahora, al abrir la página web en el navegador elegido y nabigate a su sitio web, IIS y VS2010/VS2012 trabajará en conjunto y Visual Studio se detendrá en ningún punto de quiebre.

Espero que esto te ayude.