Bonjour,
j’ai du passer rapidement par dessus les concepts d’ASP il fut un temps, et il me gave de devoir racheter un livre sur ASP, à l’époque d’ASP.NET.
Voilà donc mon problème, espérant une réponse simple, à un problème relativement simple.
Une de mes librairies .NET (en C#) est exposée COM.
Elle a été déployée et enregistrée sur une machine Windows Server 2003 qui a un IIS6 qui tourne, et une vieille appli “usine à gaz” ASP en VBScript.
J’arrive (avec succès) à manipuler mon objet COM (.NET) depuis ASP.
SAUF que… certaines méthodes de certaines classes de mon composant sont surchargées, et ASP n’en veut pas !
[quote]Erreur d’exécution Microsoft VBScript erreur '800a01c2’
Nombre d’arguments ou affectation de propriété incorrects: ‘pObj.AddLine’[/quote]
Voici le TLB de mon exposition COM :
[quote][
uuid(1612D5C2-B8EC-4CC9-87AC-AD18A842B166),
version(1.0),
custom(0F21F359-AB84-41E8-9A78-36D110E6D2F9, PMLInterop.ICommande)
]
dispinterface ICommande {
properties:
methods:
[id(0x60020000), propget]
BSTR Officine();
[id(0x60020000), propput]
void Officine([in] BSTR rhs);
[id(0x60020002), propget]
BSTR Action();
[id(0x60020002), propput]
void Action([in] BSTR rhs);
[id(0x60020004), propget]
BSTR Usage();
[id(0x60020004), propput]
void Usage([in] BSTR rhs);
[id(0x60020006), propget]
BSTR LastError();
[id(0x60020007)]
VARIANT_BOOL Send();
[id(0x60020008)]
void Close();
[id(0x60020009), propget]
BSTR Reference();
[id(0x60020009), propput]
void Reference([in] BSTR rhs);
[id(0x6002000b)]
void AddLine(
[in] BSTR codeproduit,
[in] short quantite);
[id(0x6002000c),
custom(0F21F359-AB84-41E8-9A78-36D110E6D2F9, AddLine)]
void AddLine_2(
[in] BSTR typecode,
[in] BSTR codeproduit,
[in] short quantite);
};[/quote]
Le plus intéressant étant :
[quote] [id(0x6002000b)]
void AddLine(
[in] BSTR codeproduit,
[in] short quantite);
[id(0x6002000c),
custom(0F21F359-AB84-41E8-9A78-36D110E6D2F9, AddLine)]
void AddLine_2(
[in] BSTR typecode,
[in] BSTR codeproduit,
[in] short quantite);[/quote]
Voilà donc mon soucis: malgré le TLB correct, ASP ne veut pas utiliser la surcharge “AddLine”.
Chose étonnante, en appelant “AddLine_2” ça fonctionne…
Je pense pas que ASP/VBScript soit en cause, puisqu’il sait utiliser des composants COM comportant des méthodes surchargées sans problème (ADODB.Command par exemple comporte des méthodes surchargés si ma mémoire est bonne).
Une solution ?