Microsoft.BizTalk.Gac.Fusion, Access denied Exception and GAC is empty

Published on : Jan 8, 2007

Category : BizTalk Server




Once in a while you get the following error while trying to compile/build the BizTalk project (With few more Access denied errors and some HRESULT values).

Error 2 at Microsoft.BizTalk.Gac.Fusion.IAssemblyCache.InstallAssembly(AssemblyCacheInstallFlag flags, String manifestFilePath, FusionInstallReference referenceData)
at Microsoft.BizTalk.Gac.Gac.InstallAssembly(String assemblyPathname, Boolean force)
at Microsoft.BizTalk.Deployment.BizTalkAssembly.GacInstall(String assemblyLocation)
at Microsoft.BizTalk.Deployment.BizTalkAssembly.PrivateDeploy(String server, String database, String assemblyPathname, String applicationName)
at Microsoft.BizTalk.Deployment.BizTalkAssembly.Deploy(Boolean redeploy, String server, String database, String assemblyPathname, String group, String applicationName, ApplicationLog log)

The error messages were very generic and its hard to diagnose anything with those messages. As a developer you tend to try few things like 1. Shutting down Visual Studio, 2. Restarting Biztalk, 3. Restarting IIS, 4. Stopping Virus scanners, etc etc and at one stage even restarting Windows. After doing one, two or all of the above steps, you’ll be ok at some point (but you never know the root cause). The project will recompile without any issues this time.  Whenever you are experiencing this issue if you look at the GAC, the GAC will be empty (Yes! believe me, scary stuff, but that’s true. I put two pictures below to show that).

visual studio command prompt

windows assembly folder

You’ll experience similar errors once in a while, when you have some Visual Studio “Built Events” scripts that deploy assemblies into GAC. One day I decided to spend some time and find out the root cause for the problem. SysInternals (Oops! now Microsoft’s) FileMon came to rescue, I put the filter on FileMon to watch for the GAC folder and started to rebuild the assemblies, all of a sudden I started to see the process cisvc.exe popping up the screen, a bit of search revealed it the “Indexing Service” that blocks the GAC folder temporarily. I don’t know whether “Indexing Service” is part of Windows XP or it got installed as part of some other updates. If in case you have it installed on your PC, that’s the services you need to start and stop if you are experiencing the problem outlined in this article.