c# - 初始化跟踪阅读器时出错

标签 c#

我在使用 traceReader.InitializeAsReader(connDef, "D:\\trace.tdf");

时遇到以下错误

错误:

2013-07-25 13:59:53,578 [8] DEBUG Error while invoking InitializeAsReaderException has been thrown by the target of an invocation. Microsoft.SqlServer.Management.Trace.SqlTraceException: Failed to initialize object as reader. ---> System.Runtime.InteropServices.COMException at ?A0xe4daab47.ProcessError(Int32 hr, UInt16* lpszMessage) at Microsoft.SqlServer.Management.Trace.CTraceControllerBase.InitSource(Boolean bReOpen) at Microsoft.SqlServer.Management.Trace.CTraceObjectsRowsetController.InitSource(Boolean bReOpen) at Microsoft.SqlServer.Management.Trace.TraceServer.InitializeAsReader(ConnectionInfoBase serverConnInfo, String profileFileName) --- End of inner exception stack trace --- at Microsoft.SqlServer.Management.Trace.TraceServer.InitializeAsReader(ConnectionInfoBase serverConnInfo, String profileFileName).

场景:

I use sql 2012 server under windows 2008 R2.

加载的程序集是

connectionInfoAssembly = Assembly.Load("Microsoft.SqlServer.ConnectionInfo, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91");
traceAssembly = Assembly.Load("Microsoft.SqlServer.ConnectionInfoExtended, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91");
smoAssembly = Assembly.Load("Microsoft.SqlServer.Smo, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91");

ConnInfo 是

server='';Trusted_Connection=true;multipleactiveresultsets=false --- Database name.

我做错了什么?

最佳答案

I figured out the issue.

我使用 wix 工具创建 msi 并将这个项目(Trace reader)部署为 windows 中的服务。发生的事情是,trace reader 服务正在使用 LocalSystem 帐户运行。此帐户没有足够的访问权限痕迹。

我已经为 LocalSystem 启用了“Alter trace”权限,如下所示。 enter image description here

当您将项目部署为服务时,这是必需的。

关于c# - 初始化跟踪阅读器时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17853114/

相关文章:

c# - Monitor.TryEnter 和 lock() 是否一起工作?

c# - Azure NotificationHubClient 破坏 PNS 句柄

c# - Unity3d 和线程

c# - 使由数据适配器填充的数据表中的列宽更宽

c# - 如何在 C# 中读取网络快捷方式文件夹的内容?

c# - 如何使用 ASP.NET 技术检查请求是否来自本地主机

c# - Base64 到 UTF-8 字符串解码 - 阿拉伯文本

c# - 如何使用 C# 从字节数组为 WPF 媒体元素创建源?

c# - 使用 Process.Start() 时 Windows 窗体 MouseUp 触发两次

c# - 使用 ReactiveUI 从 ReactiveList 获取所选项目集合