DCOM permissions and BOI

Environment: IIS, .net CORE ASP.net web API, ProvideX.Script COM object (Sage 100/ MAS90 2018 v4.5), Server 2012 R2.

Starting with the workaround first: so far my workaround has been to allow my IIS identity pool ID full access to the DCOM computer properties. This is not a good long term solution IMHO.

The documentation for Sage's Object Interface state to set the permissions on the "ProvideX OLE Server object and select properties", but there is no obviously labeled object as such. I have set my application pool identity for the pvxcom (what I assume to be the OLE server object) to have full permissions across

  • launch and activation permissions
  • Access permissions
  • Configuration permissions

The API spits back the error:

"Retrieving the COM class factory for component with CLSID {60503AB4-2D27-11D6-B249-00C04F50D575} failed due to the following error: 80070005 Access is denied. (0x80070005 (E_ACCESSDENIED))."

and the event viewer error is

The machine-default permission settings do not grant Local Activation permission for the COM Server application with CLSID {60503AB4-2D27-11D6-B249-00C04F50D575} and APPID Unavailable to the user ARDEXHQ\SQLdev SID (S-1-5-21-1838108609-599286699-1844936127-2822) from address LocalHost (Using LRPC) running in the application container Unavailable SID (Unavailable). This security permission can be modified using the Component Services administrative tool.

Curiously, though, the event viewer does not show the same CLSID as the pvxcom (Both error messages above are the same, as expected). I cannot find the relevant CLSID in the DCOM configuration folder. I did find it in the registry, and I gave my application pool ID full access in each instance that I found the CLSID.

And of course I've restarted the server...

There are several instances of the same question being asked on the sage forums, but no answers that I can get to work.

Since allowing my application pool ID free reign on the COM directory gets me working, I do not believe this is a 32/64bit problem.

EDIT to add: 

I tried running remote with pvx = new DispatchObject("ProvideX.Script", "MYSERVER")  , made sure the user had permissions over pvxcom, same issues. I did not rifle through the registry for the CLSID to add my user account access there, since this is the production server and people are online right now. I'll try it tonight, but I expect the same issue....
  • 0

    Have you made sure whichever account is running the IIS services has the correct NTFS permissions (either full or modify) on the parent directory (and applied to all sub folders) of the MAS90 folder on the sage 100 server and, if applicable, the parent directory (and applied to all sub folders) of the MAS90 folder of the workstation's client installation?

  • 0 in reply to David Speck

    yep, the pool identity has full access to the mas90 folder on both the server and the workstation. Point of reference: this thread was prompted when I was still having issues with DCOM even when running on the server that is hosting mas90 (all physical no VM's).