服务总线”;不允许请求的注册表访问”;

本文关键字:注册表 访问 不允许 总线 服务 请求 | 更新日期: 2023-09-27 18:23:43

我当前使用的是ServiceBus版本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多名开发人员使用相同的代码库。我是目前唯一遇到这个问题的人。我尝试过删除我的本地代码,从存储库中提取新代码,并在不更改代码的情况下进行重建。

如有任何帮助/指导,我们将不胜感激。

服务总线”;不允许请求的注册表访问”;

NServiceBus正试图从HKEY_CURRENT_USER'Software'NServiceBus'4.0读取许可证,而运行NServiceBus的用户帐户似乎无权准备该注册表位置
你能确认用户帐户对该注册表项有读取权限吗?

据我所知,通常NT帐户有权在HKEY_CURRENT_USER下读/写!

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