【问题标题】:RegistryKey.CreateSubKey not working on Azure hosted environmentRegistryKey.CreateSubKey 在 Azure 托管环境中不起作用
【发布时间】:2014-01-25 10:12:21
【问题描述】:

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

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

在本地计算机上运行良好,但在部署到 Azure(作为网站)时失败。

我尝试使用 [RegistryPermission(SecurityAction.Assert, ViewAndModify = @"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\11.0")] 之类的方式授予写入注册表的特定权限,但没有任何效果。

想法/建议?

【问题讨论】:

  • 您的网站是否在共享模式下运行?我不认为您可以通过在 Windows Azure 网站中运行的应用程序来操作注册表项。多租户的原因 - 有许多像您这样的应用程序在一个虚拟机/物理盒下运行。
  • 如果我将其更改为标准模式...

标签: c# azure tfs registry


【解决方案1】:

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

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

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

希望这个提示可以帮助遇到这种情况的其他人。

【讨论】:

  • 这是否意味着您现在没有使用注册表项对吗?因为我不认为即使使用 AzureWebsites 的标准实例,您也可以执行这些注册表操作。即使对于标准实例,也没有对 AzureWebsites 的 RDP 支持,这表明它们作为一个环境受到了多少保护。对于注册表级别的操作,我建议使用 Webroles 或 VMRoles。
  • 查看不知道 TeamProjectCollection 的 WorkItemStore 构造函数中的代码,它确实尝试打开 HKCU 的注册表项。
猜你喜欢
  • 1970-01-01
  • 2019-01-14
  • 2020-02-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-10
  • 2023-01-22
  • 1970-01-01
相关资源
最近更新 更多