Я использую MiniProfiler.Mvc5 v4.2.1 с C # для веб-сайта ASP.NET MVC5. Я реализую MiniProfiler на основе проекта Samples.Mvc5, включенного в репозиторий исходного кода, и у меня возникла проблема с отображением таймингов SQL. Мне любопытно, может быть, что-то не так в моей настройке, но я не совсем уверен, что это может быть.
Вот пример загрузки домашней страницы, и я не понимаю, почему время и процент SQL отображаются как 0,0:
Однако, если я действительно нажимаю на тайминги sql, я получаю это представление, которое, похоже, указывает на то, что каждый вызов SQL имеет связанные с ним тайминги:
Класс DataConnection, который я использую для определения ProfileDbConnection и других связанных объектов, находится в отдельном CSPROJ, вот некоторые соответствующие методы настройки:
/// <summary>
/// Creates a new native connection
/// </summary>
protected override IDbConnection CreateNativeConnection()
{
var connection = new SqlConnection(ConnectionString);
return new ProfiledDbConnection(connection, MiniProfiler.Current);
}
/// <summary>
/// Creates a new SQL command
/// </summary>
/// <param name="cmdText">Command text</param>
protected override DbCommand CreateCommand(string cmdText)
{
var command = new SqlCommand(cmdText, null, (SqlTransaction)Transaction);
return new ProfiledDbCommand(command, (DbConnection)NativeConnection, MiniProfiler.Current);
}
/// <summary>
/// Creates a new command parameter
/// </summary>
/// <param name="name">Parameter name</param>
/// <param name="value">Parameter value</param>
protected override DbParameter CreateParameter(string name, object value)
{
return new SqlParameter(name, value);
}
/// <summary>
/// Creates a data adapter
/// </summary>
protected override DbDataAdapter CreateDataAdapter()
{
return new ProfiledDbDataAdapter(new SqlDataAdapter(), MiniProfiler.Current);
}
В Global.asax.cs приложения MVC:
public MvcApplication()
{
AuthenticateRequest += (sender, e) =>
{
var app = (HttpApplication) sender;
if (Request.IsLocal || app.User != null && app.User.Identity.IsAuthenticated && app.User.Identity.Name == "administrator")
{
MiniProfiler.StartNew();
}
};
EndRequest += (sender, e) =>
{
MiniProfiler.Current?.Stop();
};
}
Может ли кто-нибудь помочь мне объяснить, почему я не вижу их агрегированных в первоначальном представлении или где я могу начать искать дополнительную информацию?