无法让 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