I've moved my classic asp app to win 2012 R2 (IIS 8.5). This app uses COM component. I've registered this component using regsvr32 and also exported older components from II 6 to II 8.5. I can see those components in control pane->component services.

This app is not working properly. Code include Server.CreateObject("myCOM"); looks like it works but when I try to get objArgs["prop1"]; it doesn't work. I see this error "Server.CreateObject failed while checking permissions. Access is denied to this object." What could be potential issue?

PS: I've installed ASP/server side includes & others.

  • Is your application pool running in 32bit? By default they run in 64bit mode and most COM components wont work. Nov 27 '13 at 20:53
  • I exported COM components from source and install on win 2k12 R2. Additionally, I registered using regsvr32. I've enabled 32bit application,.net CLR=4 & managed pipeline=Classic for app in IIS. What shall I do next? Nov 27 '13 at 21:07
  • In IIS manager select your application pool and click on advanced settings. There is a setting in the list for 32bit, make sure that is set. That way the application pool process will run as a 32bit process and can run COM. Nov 27 '13 at 21:18
  • @Peter Hahndorf, I've mentioned 32bit is enabled. Nov 27 '13 at 21:21

Newer versions of IIS run under the ApplicationPoolIdentity account. If you go into the advanced settings for the application pool, you can try changing the identity under the process model section to NetworkService(What iis used to use, considered less secure now) or you can change the permissions to a different account or you could manually set the ACL's for your app pool.

This article may have some good information for you: http://blogs.msdn.com/b/vijaysk/archive/2009/02/13/goodbye-network-service.aspx

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.