I have a legacy ASP website with COM object running under IIS 7.0 on Windows Server 2008. This generally works great but I ran into a rather strange issue lately for which I'm unable to find a solutions.
There's one page that calls into a custom made COM object (VB6 code, yeah, I know) that calls into a 3rd party graphics rendering COM object. After testing we found that this code works fine under Windows 2003 and IIS 6.0 but it doesn't under Windows Server 2008 and IIS 7.0. The problem is that the 3rd party render engine does not use the proper (custom installed) true-type font and seems to use a default font.
When the code from the ASP page is run as a VBScript file under an Administrator account the rendering does use the correct font. So you might think it's a permission issue. However, when I run the VBScript under the same account that the website and IIS application pool is running under, the correct font is used as well. So only when the code runs under IIS 7.0, it doesn't render with the correct font. If it runs from a CMD box under the same account as IIS is using, it renders correct.
The account that IIS is using is a custom created account (not NETWORK SERVICE) with very little priviledges, however enough to function. The website has been running for years also using 3rd party COM objects. It's the first time an issue like this has come up.
I thought that permissions on the font might be an issue, although that would not explain why it would work outside IIS. To make sure it's not part of the problem I've given the Everyone group read permissions on the specific font. This did not solve the problem.
Taking all of the above into consideration, I think my question comes down to what is IIS doing differently that might cause the code to fail to use the correct font. I know that IIS 7.x is automatically putting the application pool account into the group IIS_IUSRS before it launches the application pool. But I already manually added the account to that group so also when I run the VBScript from a CMD box under that account, the account is also part of the IIS_IUSRS group. So that should be the same.
I'm running out of ideas how to solve this. Any ideas, tips or suggestions are welcome.