无法让 nservicebus 性能计数器在 Windows Server 2008 R2 上的开发/自主机中工作

Posted

技术标签:

【中文标题】无法让 nservicebus 性能计数器在 Windows Server 2008 R2 上的开发/自主机中工作【英文标题】:Can't get nservicebus performance counters to work in development/self host on windows server 2008 R2 【发布时间】:2013-09-12 09:28:57 【问题描述】:

通过 Visual Studio 或命令提示符运行 nservicebus.host.exe 自托管时出现此异常。 (已尝试以管理员和我的普通用户身份从命令提示符运行):

2013-09-12 11:16:33,978 [1] 致命 NServiceBus.Hosting.GenericHost [(null)] - System.InvalidOperationException: Crit 的 NServiceBus 性能计数器 ical 时间设置不正确。请运行 NServiceBus 基础设施安装 乐手来纠正这个问题。 ---> System.InvalidOperationException: 无法 R 主要类别索引:9340。

我试过运行“RunMeFirst.bat”,它似乎运行良好:

C:\Program Files (x86)\NServiceBus\v3.3.4>runmefirst

C:\Program Files (x86)\NServiceBus\v3.3.4>回显关闭 已复制 1 个文件。 已复制 1 个文件。 已复制 1 个文件。 已复制 1 个文件。

运行基础设施安装程序并退出(忽略其他命令行参数(如果存在))。 这台电脑上已经安装了RavenDB服务,当前状态:正在运行 开始安装 PerformanceCounters PerformanceCounters 安装成功。 检查是否安装了 MSMQ。 已安装 MSMQ。 检查是否只有需要的组件处于活动状态。 安装很好。 检查 DTC 是否配置正确。

这台机器是一个带有终端服务的 windows server 2008 R2,它是一个供多个开发者共享的开发服务器。我怀疑 win 服务器上更严格的安全性应该归咎于此,因为它适用于我的 win 7 机器。

编辑 尝试在包管理器控制台中运行“Install-PerformanceCounters”,但同样的问题。仅供参考,包管理器控制台的输出是(我的命令在底部):

Package Manager Console Host Version 2.2.40116.9051

Type 'get-help NuGet' to see all available NuGet commands.

Type 'get-help about_NServiceBus' to see all available NServiceBus commands. 
What if: Performing operation "Install-PerformanceCounters" on Target "DEV01". 
Performance Counters is setup and ready for use with NServiceBus 
What if: Performing operation "Install-Msmq" on Target "DEV01". 
Msmq is installed and setup for use with NServiceBus What if: 
Performing operation "Install-Dtc" on Target "DEV01". 
DTC is not properly configured 
What if: Performing operation "Install-RavenDB" on Target "DEV01".

PM> Install-PerformanceCounters 
True
PM>

【问题讨论】:

【参考方案1】:

尝试使用 powershell cmdlet,请参阅 http://docs.particular.net/nservicebus/operations/management-using-powershell

【讨论】:

也试过了,但没有运气。我用 PMC 输出更新了我的问题。 有时性能计数器会损坏,您可能需要重置它们,谷歌一下。 您的链接似乎不再存在 @John。【参考方案2】:

感谢 John Simons 的评论,我在这个 SO 问题中找到了答案:corrupted performance counters

在我的特殊情况下,运行

lodctr /R

在管理员命令提示符下就足够了。

【讨论】:

以上是关于无法让 nservicebus 性能计数器在 Windows Server 2008 R2 上的开发/自主机中工作的主要内容,如果未能解决你的问题,请参考以下文章

无法从 ASP.NET Core 6.0 API NServiceBus 端点订阅事件

使用 WiX 将 NServiceBus.Host 安装为服务

如何使用代码配置nservicebus msmqtransport

将 RabbitMQ 与 nServiceBus(针对 C#)一起使用与使用 Amazon SQS

为啥我的 ASP.NET MVC 多实例性能计数器不起作用

插入后nservicebus删除订阅记录?