- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我在我的 mvc3 项目中首先使用 EF 4.2 代码。
miniprofiler 工作正常(sql + mvc),但我遇到了异步任务的问题。
我这样执行它们(这个方法可以吗?我对这个 new DatabaseContext()
感到有点不安)
public static void PerformAsycAction(this User user, Action<User> action)
{
ThreadPool.QueueUserWorkItem(_ =>
{
var context = new DatabaseContext();
MiniProfilerEF.Initialize();
var consistantUser = context.Set<User>().Get(user.Id);
action(consistantUser);
context.SaveChanges();
});
}
我在 Application_Start 中有正确的行:
protected void Application_Start()
{
MiniProfilerEF.Initialize();
...
}
在 action(consistantUser);
中第一次使用 db 操作时抛出异常这是踪迹:
at MvcMiniProfiler.MiniProfiler.AddSqlTiming(SqlTiming stats) in C:\Users\sam\Desktop\mvc-mini-profiler\MvcMiniProfiler\MiniProfiler.cs:line 274 at MvcMiniProfiler.SqlTiming..ctor(DbCommand command, ExecuteType type, MiniProfiler profiler) in C:\Users\sam\Desktop\mvc-mini-profiler\MvcMiniProfiler\SqlTiming.cs:line 137 at MvcMiniProfiler.SqlProfiler.ExecuteStartImpl(DbCommand command, ExecuteType type) in C:\Users\sam\Desktop\mvc-mini-profiler\MvcMiniProfiler\SqlProfiler.cs:line 39 at MvcMiniProfiler.SqlProfilerExtensions.ExecuteStart(SqlProfiler sqlProfiler, DbCommand command, ExecuteType type) in C:\Users\sam\Desktop\mvc-mini-profiler\MvcMiniProfiler\SqlProfiler.cs:line 93 at MvcMiniProfiler.MiniProfiler.MvcMiniProfiler.Data.IDbProfiler.ExecuteStart(DbCommand profiledDbCommand, ExecuteType executeType) in C:\Users\sam\Desktop\mvc-mini-profiler\MvcMiniProfiler\MiniProfiler.IDbProfiler.cs:line 14 at MvcMiniProfiler.Data.ProfiledDbCommand.ExecuteDbDataReader(CommandBehavior behavior) in C:\Users\sam\Desktop\mvc-mini-profiler\MvcMiniProfiler\Data\ProfiledDbCommand.cs:line 158 at System.Data.Common.DbCommand.ExecuteReader(CommandBehavior behavior) at System.Data.EntityClient.EntityCommandDefinition.ExecuteStoreCommands(EntityCommand entityCommand, CommandBehavior behavior)
我做错了什么?任何帮助将不胜感激。
编辑: 我尝试再次初始化 MiniProfiler (MiniProfilerEF.Initialize();
),在执行后台任务的线程中(在启动 DatabaseContext 之前),然后现在是另一个异常(exception):
Unable to cast object of type 'MvcMiniProfiler.Data.EFProfiledDbConnection' to type 'System.Data.SqlClient.SqlConnection
事实上,不需要在后台线程中分析查询,但它会崩溃整个线程,因此应用程序无法正常工作,我不得不禁用整个分析器。有没有办法为那个后台线程禁用它以防止它崩溃?
最佳答案
代码在尝试访问您的连接字符串时中断,因为连接字符串是 Entity Framework 样式的连接字符串。
将连接字符串传递给微型分析器时,您必须从 EF 连接字符串中提取实际的连接字符串。
EntityConnection connection =
new EntityConnection(ConfigurationManager
.ConnectionStrings["ConnectionStringName"].ConnectionString));
string connectionString = connection.StoreConnection.ConnectionString;
关于c# - MiniProfiler、EntityFramework 代码优先和后台任务 nullreference,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9471588/
我正在尝试在我的 asp MVC 项目中使用堆栈交换 MiniProfiler,但是在我调用的地方我收到了一条非常烦人的错误消息 @using StackExchange.Profiling 和 @M
尝试加载 miniprofiler 列表时出现“MiniProfiler.list 未定义”错误: /mini-profiler-resources/results-index JavaScript
在 MiniProfiler.MVC3 NuGet 包中,它在 App_Start 中创建一个文件,用于控制 MiniProfiler 设置(要使用的 SqlFormatter、对 ViewEngin
我正在尝试弄清楚如何使用 MiniProfile 查看为什么某些网页运行速度如此之慢。我已经添加了它,并在 Application_BeginRequest、Application_EndReques
我想使用 MiniProfiler 为 Application_OnStart 计时。到目前为止,我一直没有成功。我尝试创建一个 Timing 并将其添加到根的子级,但它没有收集我想要的所有数据。它还
我将 MiniProfiler v3.2.0.157 和 MiniProfiler.EF6 v3.0.11 与 C# 一起用于 ASP.NET MVC 4 网站。虽然我可以让分析器显示在网站的大部分页
我正在使用 MVC Mini 分析器来检查我的应用程序特定部分的速度,并希望将其保留在那里,以防万一以后发生什么事情,我可能需要检查“出了什么问题”。这不是一个完整的日志集,但它可以帮助您了解导致页面
我刚刚创建了一个新的 MVC 4 Basic 项目,并将包添加到项目中,并将所需的代码添加到布局中,但第一次运行后没有任何反应。 这是布局: @using StackExchange.Profilin
Miniprofiler 显示我的页面中最慢的部分是“渲染”步骤(下面附上截图)。 在该渲染步骤中发生了什么?是不是你的.aspx转成html发给客户端的阶段?有什么地方可以添加 Miniprofil
所以我试图将 MiniProfiler ( https://github.com/MiniProfiler/dotnet ) 用于 WebForms 网站。我所做的是: 使用 nuget 安装软件包
我正在运行 umbraco 7 的一个实例。但我似乎无法设置 miniprofiler 来使用它。 在我的 global.asax 上设置: protected void Applicatio
我在让 MiniProfiler 向我显示报告时遇到问题。我只是在开发环境中,应该一直显示它。添加 ?pp=help确实会调出帮助页面。在 tmp/miniprofile 中,有大量的 mp_time
在我的 Controller 操作中,我 included View 所需的所有关联,以避免多次调用数据库。 (我试图隔离 View 层以仅呈现 Controller 收集的数据)。 I'v foun
我正在使用最新版本的 MiniProfiler,一切都已按我的预期设置和工作。我唯一的问题是 SqlParameters 没有显示。 例如,我正在运行一个存储过程:- var cmd = dbcon.
我已经添加了 miniprofiler 并且能够看到所有请求的时间。我可以使用 Miniprofiler 显示跟踪消息(或与此相关的任何其他自定义信息)吗?请帮助的可能性。我在 MVC3 .net C
我在我的项目中集成了 Entity Framework 和 CodeFirstStoredProc 库。我想记录两个库执行的查询。以前我使用的是 EF 提供的 Database.Log 委托(dele
我正在尝试使用 MiniProfiler 来获取这段代码的时间。 var profiler = StackExchange.Profiling.MiniProfiler.Current; 但它在结果中
我已经实现了一个控制台应用程序并向该应用程序添加了 Miniprofiler。 现在我想将 Miniprofiler 数据存储到数据库中。我已经执行脚本来为数据库创建表。你可以找到脚本 here !
所以,在我的 Index.cshtml 页面中,当我最初加载页面时,我有: @inherits ViewPage
我正在研究(WebForms)Web 应用程序的运行时分析工具。 我考虑过 MiniProfiler 和 Glimpse。 在 MiniProfiler 中,记录分析消息很容易(实际上是唯一的方法?)
我是一名优秀的程序员,十分优秀!