C# 当指向本地SQL Server Express时,TraceServer类无法初始化为读取器
我正在尝试通过TraceServer类在.NET中创建跟踪。我的代码如下:C# 当指向本地SQL Server Express时,TraceServer类无法初始化为读取器,c#,sql-server,trace,sql-server-profiler,C#,Sql Server,Trace,Sql Server Profiler,我正在尝试通过TraceServer类在.NET中创建跟踪。我的代码如下: var connectionInfo = new SqlConnectionInfo { ServerName = @".\sqlexpress", DatabaseName = "master", UseIntegratedSecurity = true, }; // note that at this point I can run a simple SELECT query // usin
var connectionInfo = new SqlConnectionInfo
{
ServerName = @".\sqlexpress",
DatabaseName = "master",
UseIntegratedSecurity = true,
};
// note that at this point I can run a simple SELECT query
// using connectionInfo.ConnectionString
var server = new Microsoft.SqlServer.Management.Trace.TraceServer();
server.InitializeAsReader(
connectionInfo,
@"C:\users\chasemedallion\desktop\trace.tdf"
);
while (server.Read()) {
Console.WriteLine(server["TextData"]);
}
但是,InitializeReader失败,出现以下异常:
Microsoft.SqlServer.Management.Trace.SQLTraceeException:未能将对象初始化为读取器。-->System.Runtime.InteropServices.COMException
在?A0x97257f7e.ProcessErrorInt32小时,UInt16*LPSZ消息
在Microsoft.SqlServer.Management.Trace.CTraceControllerBase.InitSourceBoolean打开
在Microsoft.SqlServer.Management.Trace.CTraceObjectsRowsetController.InitSourceBoolean中打开
在Microsoft.SqlServer.Management.Trace.TraceServer.InitializeAsReaderConnectionInfoBase serverConnInfo中,输入字符串profileFileName
--内部异常堆栈跟踪的结束--
在Microsoft.SqlServer.Management.Trace.TraceServer.InitializeAsReaderConnectionInfoBase serverConnInfo中,输入字符串profileFileName
这可能是什么原因造成的?我查看了,但我不是作为服务运行的,我的本地帐户具有对数据库的管理员访问权限,我可以通过SQL Server profiler运行跟踪
或者,我也很乐意通过.NET以编程方式运行跟踪。我需要能够像SQL Server profiler一样访问本地和远程服务器。机器上是否安装了profiler?我不认为Express本身包含了用于跟踪的所有客户端实用程序和DLL,因此您可以远程跟踪,或者如果安装了Developer客户端工具或其他版本,但Express本身不包括…@AaronBertrand SqlServer profiler安装在我的机器上。我经常使用它来分析本地SqlExpress实例和远程数据库。我想用编程的方式做同样的事情。是否存在C:\users\chasemedallion\desktop\trace.tdf?尝试从任意CPU更改为x86,因为TraceServer只在x86上工作