Calling a COM component via C#(ASP .net)

B

Badrinath Mohan

Hi All
I am accessing a COM component using C#. When i access it through the
standalone c# application it works fine.But when i call it using ASP .net
application its not working .
For example

This is my COM function..
Myfunction(int *PNINPUT ,int nsize,int *PNOUTPUT) is the com function in
the DLL.


I add the reference in my c# application

I call it in the C# application as follows
int [] pninput=new int[32];
//fill values in pninput

int [] pnoutput=new int[32];
Myfunction(ref pnInput,32,ref pnoutput);

I step into the dll and look at the function.
If its a standalone c# application it works fine .
with PNINPUT having all the values.

But when the c# client is a ASP .net the PNINPUT has only the first value
rest of the values are all junk. That is the input variable is not passed
onto the function at all,....

Could anyone please help me to solve this.

thanks and expecting ur reply
kandukondein
 
A

Alvin Bruney

you will need to add the directive "aspcompat=true" to the page directive to
force the component to use the single threaded apartment model.

regards
 
B

Badrinath Mohan

Unfortunately i was calling it from a web service and aspcompat was not
recognized there..
Fortunately
But ur idea helped me to study more on that and I got this idea of approach


Thread newThread =
new Thread(new ThreadStart(ThreadMethod));
newThread.ApartmentState = ApartmentState.STA;
newThread.Start ();
and in my Thread method i did the functionality of calling the COM
component.

It works like a charm...


thanks...
Badri




Alvin Bruney said:
you will need to add the directive "aspcompat=true" to the page directive to
force the component to use the single threaded apartment model.

regards

--


-----------
Got TidBits?
Get it here: www.networkip.net/tidbits
Badrinath Mohan said:
Hi All
I am accessing a COM component using C#. When i access it through the
standalone c# application it works fine.But when i call it using ASP ..net
application its not working .
For example

This is my COM function..
Myfunction(int *PNINPUT ,int nsize,int *PNOUTPUT) is the com function in
the DLL.


I add the reference in my c# application

I call it in the C# application as follows
int [] pninput=new int[32];
//fill values in pninput

int [] pnoutput=new int[32];
Myfunction(ref pnInput,32,ref pnoutput);

I step into the dll and look at the function.
If its a standalone c# application it works fine .
with PNINPUT having all the values.

But when the c# client is a ASP .net the PNINPUT has only the first value
rest of the values are all junk. That is the input variable is not passed
onto the function at all,....

Could anyone please help me to solve this.

thanks and expecting ur reply
kandukondein
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top