Help : impossible d'effectuer un cast de type COM : erreur TYPE_E_CANTLOADLIBRAR

Signaler
Messages postés
16
Date d'inscription
jeudi 20 février 2003
Statut
Membre
Dernière intervention
22 septembre 2010
-
Messages postés
16
Date d'inscription
jeudi 20 février 2003
Statut
Membre
Dernière intervention
22 septembre 2010
-
J'ai développé une dll ActiveX en VB6 dont j'utilise les objets et méthodes en ASP.NET. Sur mon poste de travail pas de pb, mais quand je déploie sur le poste serveur j'ai ce message : "impossible d'effectuer un cast de type COM : erreur TYPE_E_CANTLOADLIBRARY"

Dim Parametres
As ProspectDll.Parametres

Parametres = Session("Parametres") ' ligne générant l'erreur

j'ai bien registré la dll, d'ailleur si je lance sur le serveur un exe VB6 l'utilisant, pas de pb

j'ai essayé le cast avec Parametres = CType(Session("Parametres"),ProspectDll.Parametres), mais ça fait pareil

Merci pour toute idée pour résoudre ce pb

alpamayo

8 réponses

Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
d'aprés l'erreur qu'il retourne : TYPE_E_CANTLOADLIBRARY il ne peux pas
charger la librairie, quelle librairie par contre ca je sais pas



d'aprés le nom de l'erreur, ca vient pas de .net donc de ton composant,
regarde quand est-ce que celui ci declenche cette erreur :)

<hr>Cyril - MCP ASP.net
Webmaster de : Hoshimi.CodeS-SourceS.fr
Messages postés
16
Date d'inscription
jeudi 20 février 2003
Statut
Membre
Dernière intervention
22 septembre 2010

Oui, le pb vient du chargement de mon composant puisque l'erreur est levée quand j'appelle une fonction du composant (et non à l'init de l'objet comme je disais plus haut)
Ce que je ne comprends pas c'est pourquoi il n'arrive pas à la charger, alors que sur le poste dév pas de pb, et que la dll est bien régistrée dans le poste serveur

alpamayo
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
problème de droit ?


<HR>
Cyril - MCP ASP.net
Webmaster de : Hoshimi.CodeS-SourceS.fr
Messages postés
16
Date d'inscription
jeudi 20 février 2003
Statut
Membre
Dernière intervention
22 septembre 2010

merci de t'intéresser à mon pb qui commence à me gaver

j'ai mis tous les droits dans IIS mais ça ne change rien, mais j'ai affiné le problème par rapport aux variables session : si j'utilise la variable session directement, les appels aux fonctions de la dll passent, mais pas si je crée un objet que j'affecte :


Dim test
As
String



Dim Parametres
As ProspectDll.Parametres


test = Session(
"Parametres").CrypteMotdePasse(
"toto")
' ça marche


Parametres = Session(
"Parametres")


test = Parametres.CrypteMotdePasse(
"aaaa")
' ça ne marche pas


Parametres =
CType(Session(
"Parametres"), ProspectDll.Parametres)


test = Parametres.CrypteMotdePasse(
"aaaa")
' ça ne marche pas

sachant que les lignes qui plantent sur le serveur passent sans pb sur le poste dév ???

je peux continuer mon dév comme ça (en utilisant les variables session) mais j'aimerais bien savoir ce qui se passe sur le serveur.
t'as une idée ?

Par ailleurs, j'ai aussi essayé de créer une classe Utils avec


Public
Shared
Property Parametres()
As ProspectDll.Parametres

Get
Return
CType(HttpContext.Current.Session(
"Parametres"), ProspectDll.Parametres)

End
Get
Set(
ByVal value
As ProspectDll.Parametres)
HttpContext.Current.Session(
"Parametres") = value

End
Set
End
Property

c'est assez pratique car tu utilises Utils.Parametres au lieu de Session("Parametres")

et c'est pareil : ça marche sur le poste dév mais pas le serveur

sur IIS j'ai bien activé les sessions

alpamayo
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
si tu met un point d'arret sur

test = Session("Parametres").CrypteMotdePasse(
"toto")
' ça marche

et que tu regardes le type de Session("Parametres") ca donne quoi ?

t'as quoi comme OS pour dev et en prod ?


<HR>
Cyril - MCP ASP.net
Webmaster de : Hoshimi.CodeS-SourceS.fr
Messages postés
16
Date d'inscription
jeudi 20 février 2003
Statut
Membre
Dernière intervention
22 septembre 2010

il me dit que c'est un HttpSessionState (quand je clique-droit et Définition, y'a un autre moyen d'avoir le type ?)

en dév et serveur même OS : Windows 2000 Pro SP4

en fait j'ai le même pb sur les propriétés de mes objets, sauf que c'est encore plus bizarre :
dans ma première page, si je fais

dim Client as new ProspectDll.Client
Client.Nom="toto"

ça passe sans pb, mais si je le mets sur Page_load ou un événement Button_Click de ma deuxième page (appelée par la première) ça plante avec le même message (TYPE_E_CANTLOADLIBRARY)

ça ne passe que si je fais
dim Client as Object
Client = new ProspectDll.Client
Client.Nom="toto"

je trouvais justement génial ASP.NET car je retrouvais les propriétés et méthodes de mes objets, mais si je dois tous les déclarer en Object, je perds ce gros avantage

alpamayo
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
pour savoir le type exact tu met un point d'arret sur la ligne puis tu lance en debug :p

quand t'es sur ta ligne F9 puis F5 :-) puis tu rajoutes le fenetre qui va bien (elle s'appelle watch dans VS2005) et tu rajoutes ton type dedans, c'est peut etre aussi possible en selectionnant Session("Parametres") plus clique droit dessus et addwatch

En tout cas moi j'ai jamais fais d'interop donc je peux pas trop t'aider, va voir sur la msdn, tu verras bien ...


<HR>
Cyril - MCP ASP.net
Webmaster de : Hoshimi.CodeS-SourceS.fr
Messages postés
16
Date d'inscription
jeudi 20 février 2003
Statut
Membre
Dernière intervention
22 septembre 2010

Ah oui, c'est vrai que dans le watch il donne le type, c'est Object je vais fouiller sur MSDN (je l'ai déjà fais, mais je vais fouiller un peu plus). Le pire c'est que ça doit être tout con, je me demande surtout ce qui fait la différence entre les deux postes, il doit y avoir un paramètre réglé quelque part...

Merci de ton temps passé en tous cas, si ça te tente de voir, le début de mon appli est sur www.alpamayo.fr/prospectweb (mot de passe toto pour la version démo)

alpamayo