Журнал Fiddler запросов к базе данных в режиме реального времени - PullRequest
1 голос
/ 23 сентября 2011

Есть ли способ зарегистрировать все запросы, поступающие в базу данных, или вы можете записывать только снимки в базу данных?

1 Ответ

2 голосов
/ 07 сентября 2012

В следующем примере используется OLEDB 4.0, который недоступен для 64-битных процессов. Вы можете выбрать другого поставщика данных (например, SQLServer) или заставить Fiddler работать в 32-битном режиме.

Добавьте следующее в файл правил, чтобы создать новый пункт меню.

// Log the currently selected sessions in the list to a database.
// Note: The DB must already exist and you must have permissions to write to it.
public static ToolsAction("Log Selected Sessions") 
function DoLogSessions(oSessions: Fiddler.Session[]){
if (null == oSessions || oSessions.Length < 1){
  MessageBox.Show("Please select some sessions first!");
  return;
}
var strMDB = "C:\\log.mdb";
var cnn = null;
var sdr = null;
var cmd = null;
try
{
  cnn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + strMDB);
  cnn.Open();
  cmd = new OleDbCommand();
  cmd.Connection = cnn;

  for (var x = 0; x < oSessions.Length; x++){
    var strSQL = "INSERT into tblSessions ([ResponseCode],[URL]) Values (" + 
    oSessions[x].responseCode + ", '" + oSessions[x].url + "')";
    cmd.CommandText = strSQL;
    cmd.ExecuteNonQuery();
  }
}
catch (ex){
  MessageBox.Show(ex);
}
finally
{
  if (cnn != null ){
    cnn.Close();
  }
}
}

Примечание. Чтобы использовать объекты базы данных в Fiddler 2.3.9 и ниже, вам необходимо добавить system.data в список «Ссылки» в разделе «Инструменты | Параметры Fiddler | Расширения | Сценарии. В 2.3.9.1 и более поздних версиях эта ссылка появится автоматически. Затем перечислите новый импорт в верхней части скрипта правил:

import System.Data.OleDb;

см. FiddlerScript CookBook

...