Bonjour,
Je travaille actuellement sur application impliquant l'utilisation de dlls VB.NET enregistrées en tant de composant COM+. Ces composants devront par la suite être utilisés dans une application web en ASP/VbScript.
Les dlls VB.NET résultent d'un portage d'anciennes dlls VB6. Les Attributs nécessaires pour com+ ont été ajoutés System.EnterpriseServices.Transaction(System.EnterpriseServices.TransactionOption.Required), IISIntrinsics(), ProgID)
Les composants sont correctement enregistrés dans COM+ ainsi que dans le GAC, et j'arrive bien à instancier mes objets mais je rencontre un problème de transaction, lorsque dans le code de la dll, une tentative de connexion vers une base de données est effectuée. Cette connexion est effectuée grâce au code suivant :
une fois à la fonction let_ActiveConnection(), une exception est levée indiquant que
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 With cmdConnexion .CommandType = ADODB.CommandTypeEnum.adCmdStoredProc .let_ActiveConnection(strChaineConnSysteme) .CommandText = "PS_MaProcedureStockee" .Parameters.Append(.CreateParameter("@monParam", ADODB.DataTypeEnum.adVarChar, ADODB.ParameterDirectionEnum.adParamInput, 50, Code)) rsConnexion.CursorLocation = ADODB.CursorLocationEnum.adUseClient rsConnexion.Open(cmdConnexion, , ADODB.CursorTypeEnum.adOpenForwardOnly, ADODB.LockTypeEnum.adLockReadOnly) .Prepared = True End WithMes recherches sur internet ne sont pas concluantes, car les solutions proposées n'enlèvent pas l'erreur.La nouvelle transaction ne peut pas s'inscrire dans le coordinateur de transactions spécifiées
Je tiens à préciser que le code existant n'est pas de moi, et que je n'ai pas forcément la liberté de le modifier
Merci d'avance pour toute aide, conseils, retour
Bonne Journée
Partager