C# 读取SQL Server跟踪时引发异常
我正在尝试使用C#通过SQL Server跟踪捕获在自动化测试运行期间执行的查询。当我运行下面的代码时,我得到了异常 “未能将对象初始化为读取器。” 那么在这种情况下,我们能做些什么呢 源代码C# 读取SQL Server跟踪时引发异常,c#,sql-server,C#,Sql Server,我正在尝试使用C#通过SQL Server跟踪捕获在自动化测试运行期间执行的查询。当我运行下面的代码时,我得到了异常 “未能将对象初始化为读取器。” 那么在这种情况下,我们能做些什么呢 源代码 class Program { static void Main(string[] args) { using (Impersonation user = new Impersonation("xxx", "xxx","xxx"))
class Program
{
static void Main(string[] args)
{
using (Impersonation user = new Impersonation("xxx", "xxx","xxx"))
{
ConnectionInfoBase conninfo = new SqlConnectionInfo();
((SqlConnectionInfo)conninfo).ServerName = "xxxxx";
((SqlConnectionInfo)conninfo).UseIntegratedSecurity = true;
TraceServer trace = new TraceServer();
trace.InitializeAsReader(conninfo, @"Standard.tdf");
for (int count = 0; count < 30; count++)
{
while (trace.Read())
{
Console.WriteLine(trace["TextData"]);
}
Thread.Sleep(1000);
}
}
}
}
为什么不使用扩展事件?您是在尝试配置SqLExpExchange吗?是的,但是程序性地添加到@ Larnu的建议中,考虑使用[<代码> QueRababEclipse数据> /Cux>()来在.NET代码中扩展事件。
SqlTraceException: Failed to get SQL Tools directory path from InstAPI....
This exception was originally thrown at this call stack:
Microsoft.SqlServer.Management.Trace.TraceUtils.GetSqlToolsBinaryPath(string)
Microsoft.SqlServer.Management.Trace.TraceUtils.CreateInstance(string, string)
Microsoft.SqlServer.Management.Trace.TraceServer.InitializeAsReader(Microsoft.SqlServer.Management.Common.ConnectionInfoBase, string)