C# RegistryKey.CreateSubKey在Azure托管环境中不工作

C# RegistryKey.CreateSubKey在Azure托管环境中不工作,c#,azure,tfs,registry,C#,Azure,Tfs,Registry,我正在使用Microsoft.TeamFoundation.Common.dll对云TFS进行查询。在某些情况下,它尝试使用RegistryKey.CreateSubKey方法创建注册表项,但在以下情况下失败: System.IO.IOException:指定的注册表项不存在 在本地计算机上工作正常,但部署到Azure(作为网站)时失败 我尝试使用类似于[RegistryPermission(SecurityAction.Assert,view and modify=@“HKEY\U LOCAL

我正在使用
Microsoft.TeamFoundation.Common.dll
对云TFS进行查询。在某些情况下,它尝试使用
RegistryKey.CreateSubKey
方法创建注册表项,但在以下情况下失败:

System.IO.IOException
:指定的注册表项不存在

在本地计算机上工作正常,但部署到Azure(作为网站)时失败

我尝试使用类似于
[RegistryPermission(SecurityAction.Assert,view and modify=@“HKEY\U LOCAL\u MACHINE\SOFTWARE\Microsoft\VisualStudio\11.0”)]的东西授予写入注册表的特定权限,但没有效果


想法/建议?

似乎
TfsTeamProjectCollection.GetService()
做了一些有趣的事情,但不确定它为什么要使用注册表(我认为这与Visual Studio中连接到TFS的集成功能有关)

我最终使用了
WorkItemStore
构造函数,并将
tfstreamprojectcollection
实例传递给它

大多数在线示例建议使用
tfsTeamProjectCollection.GetService
,但不承认其含义


希望此提示能在这种情况下帮助他人。

您的网站是否在共享模式下运行?我认为你不能通过运行在WindowsAzure网站上的应用程序来操作注册表项。原因是多租户-有许多像您这样的应用程序在一个虚拟机/物理框下运行。如果我将其更改为标准模式,也是一样的…那么这是否意味着您现在没有使用注册表项?因为我认为即使是AzureWebsites的标准实例,也无法进行这些注册表操作。即使对于标准实例,AzureWebsites也没有RDP支持,这表明它们作为一个环境受到了多大的保护。对于注册表级操作,我建议使用Webroles或VMRoles。看看WorkItemStore构造函数中不知道TeamProjectCollection的代码,它确实尝试为HKCU打开注册表项。