We are finding that one method exposed by the mfcom.dll library takes noticeably longer on any machine other than the one in which this application is being developed. We have attempted to match the apartment threading model of the mfcom.dll file with the following code:
Thread.CurrentThread.ApartmentState = ApartmentState.STA
then using
Thread.CurrentThread.ApartmentState = ApartmentState.MTA
There was no change. We have also tried packaging the type library (tlb) of the mfcom.dll file (mfcom.tlb) with the application, but again, there was no change. The method we are calling is enumerating Citrix published applications published in a farm chosen by a user. This method works very fast on the development machine, but seems to lag considerably on all other machines.
Can anyone tell us why the in-process COM calls execute so slowly on all machines other than the development machine?
Thanks,
Daniel
amanjit.singh.gill@googlemail.com - 18 Feb 2006 15:12 GMT
Did you register the COM type library (tlb) on the development machine
with regasm.exe ? This all sounds as if IDispatch access was tried
which is always slower.
Cheers
Amanjit Gill
amanjit.singh.gill@googlemail.com - 18 Feb 2006 15:33 GMT
Sorry I meant to ask: did you use regasm.exe on the tlb on the
_deployment_ machine where its running so slow ?