nServiceBus“不允许请求的注册表访问”

时间:2013-07-18 14:38:53

标签: c# nservicebus nservicebus4

我目前正在使用nServiceBus版本4.0.0-unstable3223(预发布)

NSB配置如下:

private static readonly IBus Bus =
Configure
.With(typeof(IBaseMessage).ReferencedAssemblies())
.DefiningCommandsAs(t => t.Namespace != null && t.Namespace.Contains(".Messages."))
.DefaultBuilder()
.XmlSerializer()
.UseTransport<Msmq>()
.UnicastBus()
.SendOnly();

当我尝试访问WebAPI方法时,出现错误。当我调试以查明发生了什么时,这是我得到的例外:

{"Requested registry access is not allowed."}

Stack Trace:
at Microsoft.Win32.RegistryKey.OpenSubKey(String name, Boolean writable)
at NServiceBus.Licensing.LicenseDescriptor.get_HKCULicense() in c:\TeamCity\buildAgent\work\28bfdd0d351fb1d3\src\NServiceBus.Core\Licensing\LicenseDescriptor.cs:line 30

注意:我在同一代码库中有10多个开发人员的环境中工作。我是目前唯一遇到此问题的人。我尝试删除我的本地代码,从存储库中提取新内容,并在没有代码更改的情况下重建。

任何帮助/指导将不胜感激。

2 个答案:

答案 0 :(得分:3)

NServiceBus正在尝试从HKEY_CURRENT_USER\Software\NServiceBus\4.0读取许可证,看起来您运行NServiceBus的用户帐户无权准备该注册表位置。
您能否确认用户帐户对该注册表项具有读取权限?

据我了解,通常NT帐户有权在HKEY_CURRENT_USER下阅读/写作!

答案 1 :(得分:0)

如果您在应用程序中使用Windows身份验证,请确保IIS身份验证设置正确无误。 Windows身份验证必须是唯一启用的身份验证方法。这解决了我的问题。

相关问题