If you are using the TFS API within a WebApp with impersonation there is a good chance you will see the error below when you run the web site on IIS
System.Security.SecurityException: Requested registry access is not allowed.
at System.ThrowHelper.ThrowSecurityException(ExceptionResource resource)
at Microsoft.Win32.RegistryKey.OpenSubKey(String name, Boolean writable)
at Microsoft.TeamFoundation.Client.RegisteredServers.OpenCurrentUser(Boolean writable, Boolean shouldCreate)
at Microsoft.TeamFoundation.Client.RegisteredServers.GetUriForServer(String serverName)
at Microsoft.TeamFoundation.Client.RegisteredServers.GetServerKeyForServer(String serverName, String subKey, Boolean writable, Boolean shouldCreate)
If you google for this forums tells you to add read access for the impersonated user to
HKEY_CURRENT_USERSoftwareMicrosoftVisualStudio9.0TeamFoundationServers
However, this did not fix the problem. So after much fiddling and re-reading Naren’s Blog on configuring WIT I looked further down the error log and saw
The Zone of the assembly that failed was:
MyComputer
Access to the path ‘MicrosoftTeam Foundation2.0Cache’ is denied.
So I created a cache directory and added the following
And it leapt into life, even with the added rights in the registry removed!
So it seems the first error is a red herring.