Можно ли написать глобальный HttpModule в IIS и войти в SQL - PullRequest
0 голосов
/ 06 июля 2011

Можно ли написать глобальный HttpModule в IIS и зарегистрировать все запросы SQL от всех запущенных приложений .NET?Если так, то с чего мне начать?

Я видел некоторые инструменты вроде http://newrelic.com, которые делают это.Их инструмент регистрирует весь SQL и не требует от меня добавления какого-либо специального кода в мои приложения.На самом деле он регистрирует информацию из всех приложений.

1 Ответ

2 голосов
/ 06 июля 2011

Если вы собираетесь регистрировать запросы SQL, вам потребуется одно из следующих действий:

  1. Пользовательский класс уровня данных, который вы используете для всех запросов SQL, и вы можете регистрировать каждый вызов.Например, создайте класс SQLHelper с методом ExecuteQuery, который вызывает SQLCommand.ExecuteQuery, затем принимает переданный запрос и регистрирует его.Затем вы должны быть дисциплинированными, чтобы удостовериться, что каждый отдельный вызов SQL направляется через ваш вспомогательный класс.
  2. Использование такой инфраструктуры, как LINQ-To-SQL или Entity Framework, в которую встроены средства ведения журнала, например, черезDataContext.Log свойство.
  3. Использование SQL Server Profiler с соответствующими настройками для захвата трассировки запросов SQL, которые могут быть выгружены в файл или таблицу для последующей обработки.

Вы не можетеЗахватите все стандартные запросы SQL ADO.Net из глобального HTTP-модуля .NET, потому что у вас нет знаний или нет доступа ко всем текущим соединениям и командам, которые выполняются.

...