2009-12-08 5 views
0

J'ai une application Classic-ASP exécutée dans IIS 7 (mode intégré) qui doit appeler une bibliothèque .NET correctement enregistrée en tant que COM.Composant .NET appelant Classic.ASP via COM

Tout semble fonctionner, mais je ne peux pas déboguer la bibliothèque même si j'ai mis plusieurs points d'arrêt dedans. Le débogueur VS semble marcher dessus sans se casser.

Ceci est mon code ASP:

Dim sso: Set sso = Server.CreateObject("SecurityPlatform.ClassicASP_SSO") 
sso.Initialize() 

Je peux pas déboguer ces lignes, mais il semble impossible d'entrer dans initialize().

Une idée?

Répondre

1

Je ne sais pas pourquoi ne pas parcourir, mais voici une astuce:

mettre un appel à la méthode System.Diagnostics.Debugger.Break dans votre code managé. Une fois que l'exécution atteint cette ligne, une boîte de dialogue apparaîtra vous permettant de joindre VS.

0

S'il s'agit d'un composant de services d'entreprise/COM +, vous devrez peut-être attacher manuellement le débogueur au processus où le composant COM est en cours d'exécution. Un composant COM + exécutant "out of process" n'aura pas le débogueur attaché par défaut.

La dernière fois que j'ai fait cela, le processus auquel nous devions attacher était le dernier dllhost créé (normalement le plus haut identifiant de processus). Vous pouvez le faire via le menu de débogage de Visual Studio.

0

Si vous essayez d'accéder au code Managed .NET appelé via COM +, assurez-vous de joindre le débogueur à dllhost.exe au lieu de w3p.exe (ou quel que soit le processus exécutant votre application web). .pendant de votre version d'IIS).

Code COM + n'est pas exécutée en cours avec le serveur web ...

0

Si vous entrez ces lignes alors vous serez déjà attaché au processus pour le débogage de script. Toutefois, pour déboguer le code dans le composant .NET, vous devez être connecté au processus de débogage du "Code managé". Vous ne pouvez pas passer du script à un composant géré car vous ne pouvez pas déboguer le script et le code géré en même temps. Lorsque vous vous connectez au processus w3wp, assurez-vous que la case «Attacher à:» contient le «Code géré». Maintenant, vos points de rupture fonctionneront correctement, mais vous ne serez pas en mesure d'exécuter le code de script.