c# - 读取 SQL Server 跟踪时引发异常
问题描述
我正在尝试使用 C# 通过 SQL Server 跟踪捕获在我的自动化测试运行期间执行的查询。当我运行下面的代码时,我得到了异常
“无法将对象初始化为读取器。”
那么在这种情况下可以做什么呢?
源代码
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);
}
}
}
}
内部异常
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)
解决方案
推荐阅读
- reactjs - 添加后:将 const USER_NAME_SESSION_ATTRIBUTE_NAME='authenticatedUser 导出到 reactjs 中的类
- python-3.x - LU 分解速度与传统 Ax=b
- powershell - ForEach-Object循环中的Powershell“Move-Item:该进程无法访问该文件,因为它正被另一个进程使用”
- excel - Python 3.9,Pandas - 如何在现有的 excel 中附加数据框
- amazon-web-services - 在 AWS Cloudformation 控制台中获取完整的事件文本
- java - 尝试根据用户输入调用方法,然后在 IF 语句内部调用进一步的输入选项
- firebase - Firestore/Android Studio:空对象参考 - 获取云值到类并在主活动中使用它?
- php - 检查用户是否已存在的函数
- sql-server - 根据 SQL 中的其他内容在插入时更新字段
- docker - Docker-compose 在 IPv6 上公开端口