mvc-mini-profiler 1.9出现“无法确定提供程序名称”的错误

4
我正在使用entity framework和mvc-mini-profiler。在将mvc-mini-profiler从1.7版本升级到1.9版本并解决了一些问题后,我成功编译了我的项目。现在我遇到了以下运行时异常:
无法确定类型为“MvcMiniProfiler.Data.EFProfiledDbConnection”的连接的提供程序名称
我认为问题可能与配置的数据库提供程序工厂有关,因为我在1.7版本中也遇到了同样的问题,并通过在.config文件中添加以下内容来解决它:
<DbProviderFactories>
    <remove invariant="MvcMiniProfiler.Data.ProfiledDbProvider" />
    <add name="MvcMiniProfiler.Data.ProfiledDbProvider" 
         invariant="MvcMiniProfiler.Data.ProfiledDbProvider" 
         description="MvcMiniProfiler.Data.ProfiledDbProvider" 
         type="MvcMiniProfiler.Data.ProfiledDbProviderFactory, MvcMiniProfiler, Version=1.7.0.0, Culture=neutral, PublicKeyToken=b44f9351044011a3" />
</DbProviderFactories>

现在我尝试用以下内容替换上面的内容,但仍然出现错误:
<DbProviderFactories>
    <remove invariant="MvcMiniProfiler.Data.ProfiledDbProvider" />
    <add name="MvcMiniProfiler.Data.ProfiledDbProvider" 
         invariant="MvcMiniProfiler.Data.ProfiledDbProvider" 
         description="MvcMiniProfiler.Data.ProfiledDbProvider" 
         type="MvcMiniProfiler.Data.EFProfiledDbProviderFactory`1, MvcMiniProfiler.EntityFramework, Version=1.9.1.0, Culture=neutral, PublicKeyToken=b44f9351044011a3" />
</DbProviderFactories>

什么是解决此问题的正确配置?
1个回答

4

你尝试过从.config文件中删除DbProviderFactories吗?

你的.initialize代码在那里吗?

protected void Application_Start()
{
    ....other code

    MiniProfilerEF.Initialize();
}

在1.9版本中,我只需在启动时添加Initialize并删除配置部分,现在我可以使用EF进行SQL分析。


可以了,谢谢。修复完之后,我在加载 mini-profiler-includes.* 时注意到一个错误。我在 Application_AuthenticateRequest 事件中有访问数据库的代码,这段代码导致性能分析器抛出 NullReferenceException 异常。我不得不添加代码来检查请求是否为 mini-profiler-includes.*,并跳过数据库访问。这是正常行为吗?版本1.7没有这个问题。 - Antoine Aubry
抱歉,我只在访问控制器方法中访问数据库的应用程序中尝试过分析器,还没有更高级别的尝试,所以我还没有看到那个。谢谢接受,很高兴它(有点)起作用了。 - RyanW

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接