Код: Выделить всё
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"]);
}
Microsoft.SqlServer.Management.Trace.SqlTraceException: не удалось инициализировать объект как средство чтения. ---> System.Runtime.InteropServices.COMException
в ?A0x97257f7e.ProcessError(Int32 hr, UInt16* lpszMessage)
в Microsoft.SqlServer.Management.Trace.CTraceControllerBase.InitSource(Boolean bReOpen)
в Microsoft.SqlServer.Management.Trace.CTraceObjectsRowsetController.InitSource(Boolean bReOpen)
в Microsoft.SqlServer.Management.Trace.TraceServer.InitializeAsReader(ConnectionInfoBase serverConnInfo, String ProfileFileName)
--- Конец внутреннего стека исключений трассировка ---
at Microsoft.SqlServer.Management.Trace.TraceServer.InitializeAsReader(ConnectionInfoBase serverConnInfo, String ProfileFileName)
Что может быть причиной этого? Я рассмотрел этот вопрос, но я не работаю как служба, и моя локальная учетная запись имеет доступ администратора к базе данных (я могу запускать трассировку через профилировщик SQL Server).
В качестве альтернативы я был бы рад другому способу программного запуска трассировки через .NET. Мне нужно иметь возможность обращаться как к локальным, так и к удаленным серверам (как это делает профилировщик SQL Server).
Подробнее здесь: https://stackoverflow.com/questions/193 ... -sql-serve
Мобильная версия