J'ai besoin très très rapidement d'un aide charitable car je n'arrive pas à
me sortit de ce sac et je suis tenu par le temps pour ce projet.
Je dois a partir d'un projet WebApplication (c#) gerer le port serie de mon
ordi.
J'ai écrit l'appli béta dans un projet WindowsApplication en me servant de
MsComm32.ocx. Aucun problème.
J'ai créé l'application WebApplication, déclarées les références
nécessaires(AxMsCommLib, MsCommLib et System.Windows.Form).
Lorsque j'intègre le controle dans la page aspx, aucune erreur mais pas de
reconnaissance dans le panneau propriété du controle.
Je déclare une variable "private AxMsCommLib.AxMsComm flux;" : elle est
reconnue.
Mais si je l'instancie : "new AxMsCommLib.AxMsComm()" alors j'ai droit à
l'insulte ci après :
Could not instantiate ActiveX control '648a5600-2c6e-101b-82b6-000000000014'
because the current thread is not in a single-threaded apartment.
J'ai positionné le flag [STAThread] avant la proc page_load(..)
J'ai déclaré une methode qui lance une autre page
("Response.Redirect("WebForm2.aspx")) et je lance cette methode a partir
d'un thread déclaré "AppartmentState.STA" : Même erreur.
J'ai modifier global.asax de manière a lance "InitializeComponent" a partir
d'un thread STA... même erreur...
QUELQU'UN PEUT-IL ME SORTIR DE CE SAC de NOEUDS ??????? JE LUI TRANSMET
ILLICO UN CARTON DE BON VIN !!!
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
si j'ai bien compris tes explications, a mon avis ton thread courant est toujours celui d'ASP qui lui est MTA et non pas STA. Je ne pense vraiment pas qu'ASP puisse tourner en STA d'ailleurs. D'ailleurs tu peux vérifier en testant la propriété ApartmentState du thread courant et voir ce qu'il y a.
Ce que je ferai c'est de créer un thread avec sa propriété ApartmentState à ApartmentState.STA. Tu écris une procédure qui se charge de communiquer avec ton composant COM et tu lances le thread dessus en mode SYNCHRONE. Ensuite tu laisses le code ASP vivre sa vie comme d'hab.
Il existe différentes techniques pour faire cela, mais ça dépend de ce que tu veux faire exactement (paramètres entrées/retour en partivulier, le mieux est de rechercher un tutoriel. Sinon reposte à nouveau la dessus.
Frédo
-----Original Message----- Bonjour,
J'ai besoin très très rapidement d'un aide charitable
car je n'arrive pas à
me sortit de ce sac et je suis tenu par le temps pour
ce projet.
Je dois a partir d'un projet WebApplication (c#) gerer
le port serie de mon
ordi. J'ai écrit l'appli béta dans un projet
WindowsApplication en me servant de
MsComm32.ocx. Aucun problème. J'ai créé l'application WebApplication, déclarées les
références
nécessaires(AxMsCommLib, MsCommLib et
System.Windows.Form).
Lorsque j'intègre le controle dans la page aspx, aucune
erreur mais pas de
reconnaissance dans le panneau propriété du controle. Je déclare une variable "private AxMsCommLib.AxMsComm
flux;" : elle est
reconnue. Mais si je l'instancie : "new AxMsCommLib.AxMsComm()"
alors j'ai droit à
l'insulte ci après :
Could not instantiate ActiveX control '648a5600-2c6e-
101b-82b6-000000000014'
because the current thread is not in a single-threaded
apartment.
J'ai positionné le flag [STAThread] avant la proc
page_load(..)
J'ai déclaré une methode qui lance une autre page ("Response.Redirect("WebForm2.aspx")) et je lance cette
methode a partir
d'un thread déclaré "AppartmentState.STA" : Même erreur. J'ai modifier global.asax de manière a
lance "InitializeComponent" a partir
d'un thread STA... même erreur...
QUELQU'UN PEUT-IL ME SORTIR DE CE SAC de NOEUDS ???????
JE LUI TRANSMET
ILLICO UN CARTON DE BON VIN !!!
Bruno
.
si j'ai bien compris tes explications, a mon avis ton
thread courant est toujours celui d'ASP qui lui est MTA
et non pas STA. Je ne pense vraiment pas qu'ASP puisse
tourner en STA d'ailleurs.
D'ailleurs tu peux vérifier en testant la propriété
ApartmentState du thread courant et voir ce qu'il y a.
Ce que je ferai c'est de créer un thread avec sa
propriété ApartmentState à ApartmentState.STA. Tu écris
une procédure qui se charge de communiquer avec ton
composant COM et tu lances le thread dessus en mode
SYNCHRONE. Ensuite tu laisses le code ASP vivre sa vie
comme d'hab.
Il existe différentes techniques pour faire cela, mais ça
dépend de ce que tu veux faire exactement (paramètres
entrées/retour en partivulier, le mieux est de rechercher
un tutoriel. Sinon reposte à nouveau la dessus.
Frédo
-----Original Message-----
Bonjour,
J'ai besoin très très rapidement d'un aide charitable
car je n'arrive pas à
me sortit de ce sac et je suis tenu par le temps pour
ce projet.
Je dois a partir d'un projet WebApplication (c#) gerer
le port serie de mon
ordi.
J'ai écrit l'appli béta dans un projet
WindowsApplication en me servant de
MsComm32.ocx. Aucun problème.
J'ai créé l'application WebApplication, déclarées les
références
nécessaires(AxMsCommLib, MsCommLib et
System.Windows.Form).
Lorsque j'intègre le controle dans la page aspx, aucune
erreur mais pas de
reconnaissance dans le panneau propriété du controle.
Je déclare une variable "private AxMsCommLib.AxMsComm
flux;" : elle est
reconnue.
Mais si je l'instancie : "new AxMsCommLib.AxMsComm()"
alors j'ai droit à
l'insulte ci après :
Could not instantiate ActiveX control '648a5600-2c6e-
101b-82b6-000000000014'
because the current thread is not in a single-threaded
apartment.
J'ai positionné le flag [STAThread] avant la proc
page_load(..)
J'ai déclaré une methode qui lance une autre page
("Response.Redirect("WebForm2.aspx")) et je lance cette
methode a partir
d'un thread déclaré "AppartmentState.STA" : Même erreur.
J'ai modifier global.asax de manière a
lance "InitializeComponent" a partir
d'un thread STA... même erreur...
QUELQU'UN PEUT-IL ME SORTIR DE CE SAC de NOEUDS ???????
si j'ai bien compris tes explications, a mon avis ton thread courant est toujours celui d'ASP qui lui est MTA et non pas STA. Je ne pense vraiment pas qu'ASP puisse tourner en STA d'ailleurs. D'ailleurs tu peux vérifier en testant la propriété ApartmentState du thread courant et voir ce qu'il y a.
Ce que je ferai c'est de créer un thread avec sa propriété ApartmentState à ApartmentState.STA. Tu écris une procédure qui se charge de communiquer avec ton composant COM et tu lances le thread dessus en mode SYNCHRONE. Ensuite tu laisses le code ASP vivre sa vie comme d'hab.
Il existe différentes techniques pour faire cela, mais ça dépend de ce que tu veux faire exactement (paramètres entrées/retour en partivulier, le mieux est de rechercher un tutoriel. Sinon reposte à nouveau la dessus.
Frédo
-----Original Message----- Bonjour,
J'ai besoin très très rapidement d'un aide charitable
car je n'arrive pas à
me sortit de ce sac et je suis tenu par le temps pour
ce projet.
Je dois a partir d'un projet WebApplication (c#) gerer
le port serie de mon
ordi. J'ai écrit l'appli béta dans un projet
WindowsApplication en me servant de
MsComm32.ocx. Aucun problème. J'ai créé l'application WebApplication, déclarées les
références
nécessaires(AxMsCommLib, MsCommLib et
System.Windows.Form).
Lorsque j'intègre le controle dans la page aspx, aucune
erreur mais pas de
reconnaissance dans le panneau propriété du controle. Je déclare une variable "private AxMsCommLib.AxMsComm
flux;" : elle est
reconnue. Mais si je l'instancie : "new AxMsCommLib.AxMsComm()"
alors j'ai droit à
l'insulte ci après :
Could not instantiate ActiveX control '648a5600-2c6e-
101b-82b6-000000000014'
because the current thread is not in a single-threaded
apartment.
J'ai positionné le flag [STAThread] avant la proc
page_load(..)
J'ai déclaré une methode qui lance une autre page ("Response.Redirect("WebForm2.aspx")) et je lance cette
methode a partir
d'un thread déclaré "AppartmentState.STA" : Même erreur. J'ai modifier global.asax de manière a
lance "InitializeComponent" a partir
d'un thread STA... même erreur...
QUELQU'UN PEUT-IL ME SORTIR DE CE SAC de NOEUDS ???????