Biztalk 2004 Integration Experiences

Friday, March 18, 2005

Are you getting COM Permission Denied Errors or Query Interface Errors from Interop Dll's invoked from Orchestration

Recently in our Dev Server, all the Interop components called from Biztalk stopped working. They were getting errors like this

Error at Microsoft.XLANGs.Core.SegmentScheduler.RunASegment(Segment s, StopConditions stopCond, Exception& exp)
QueryInterface for interface Interop.xxxxx._xxxxx failed.

All I could trace down was one of my colleagues just added a user "Default Access Permission to a user" in Component Services & Removed it.

So I was puzzled about why suddenly all the interop calls are failing which were working fine till that day. I was scratching my head for too long searching Microsoft support site, newsgroups etc. till the next day.

I found a support article from Microsoft for some other issue which made me to think it was related to my problem. You can see that article here

Carefully read the expert from the article below

"Note: By default, the DefaultAccessPermission binary value does not exist under the HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Ole registry key. The DefaultAccessPermission binary value is created when you run certain applications or when you configure the default access permissions of DCOM applications by using the Component Services tool"

Looks like the registry entry is not created by default, that means all users have default access permissions on instantiating COM components, when you add a user and remove it, it retains the registry key with value for the specific users left out in the GUI.

Xlangs Engine Runtime checks for "DefaultAccessPermissions" before instantiating COM components, so obviously it threw an exception. After removing the registry key/adding the Biztalk Service user to the default access permissions in Component Services GUI, resolved the error.

I think this deserves a detail Microsoft support article!


Post a Comment

<< Home