2010-12-09 5 views
1

J'ai un projet ASP.NET utilisant une DLL COM. Quand je charge le site, je me connecte sans problème et je peux bien naviguer sur le site tant que je ne vais pas à une page qui utilise la bibliothèque COM.Utilisation d'une DLL COM tierce dans ASP.NET

Lorsque j'accède à une page qui utilise la bibliothèque COM pour obtenir des données à partir d'une base de données, la page se charge correctement. Le problème vient quand je m'éloigne de cette page. Pour une raison quelconque, je suis renvoyé à la page de connexion comme si la session initiale avait été abandonnée.

Si je supprime le composant sur la page qui affiche les données que la bibliothèque récupère, je peux naviguer loin de la page, donc c'est certainement l'appel à la bibliothèque qui tue la session.

Est-ce que quelqu'un a une idée de ce qui pourrait arriver?

Répondre

1

L'a corrigé. C'était un problème stupide. La bibliothèque créait un fichier journal dans le répertoire bin à chaque fois qu'elle faisait quelque chose. La session est supprimée chaque fois qu'un fichier est modifié dans le répertoire bin, car AppDomain est détruit et redémarré.

0

Je me demande si le composant COM bloque et décompose votre pool d'applications (ou ce que l'on appelle de nos jours dans ASP.NET).

Pouvez-vous garder un œil sur le processus de travail ASP.NET (anciennement appelé aspnetwp.exe) et voir s'il disparaît lorsque vous accédez à la page avec les appels COM?

Si tel est le cas, le composant COM déclenche probablement une exception structurée qui met fin au processus, entraînant la perte de l'état de la session si vous le stockez en cours de traitement sur le serveur.

Vous pouvez obtenir plus d'informations à partir de l'Observateur d'événements (Démarrer -> Exécuter -> eventvwr), où ASP.NET enregistre les plantages.