我在尝试加载miniprofiler列表时收到错误"MiniProfiler.list is undefined"错误:
/mini-profiler-resources/results-index
javascript miniprofiler injects没有任何名为"list"的方法或属性.
显示一个结果跟踪的页面工作正常.
我正在使用Nuget来安装软件包,删除当前版本的MiniProfiler并安装最新版本:
Install-Package MiniProfiler
Run Code Online (Sandbox Code Playgroud)
然后:
Install-Package MiniProfiler.Mvc4
Run Code Online (Sandbox Code Playgroud)
找不到其他有同样问题的人,所以一定是我!我错过了一些明显的东西吗?我还在web.config中添加了处理程序,虽然我有runAllManagedModulesForAllRequests="true"但仍然没有.
Dapper(1.13 Noobget Package)创建不同的SQL语句,具体取决于它是与普通的ADO.NET数据库连接一起使用还是与装饰的迷你探查器数据库连接一起使用.
示例代码(使用Postgresql测试)
Usings:
using System.Linq;
using Dapper;
using Npgsql;
using NUnit.Framework;
using StackExchange.Profiling;
using StackExchange.Profiling.Data;
Run Code Online (Sandbox Code Playgroud)
Test1使用普通的ADO.NET连接并失败:
[TestFixture]
public class DapperTests {
private const string cnnstr = "HOST=...;DATABASE=...;USER ID=...;PASSWORD=...;";
[Test]
public void Test1() {
using (var cnn = new NpgsqlConnection(cnnstr)) {
cnn.Open();
// The following line fails:
cnn.Query<int>("SELECT 1 WHERE 42 IN @Items", new {Items = new[] {41, 42, 43}}).Single();
// Npgsql.NpgsqlException : ERROR: 42883: operator does not exist: integer = integer[]
}
}
Run Code Online (Sandbox Code Playgroud)
Test2使用围绕ADO.NET连接的mini-profiler连接并成功: …
我相信mvc mini profiler会将所有响应时间存储在HttpRuntime缓存中.
如果我错了请告诉我,但如果是这样的话,那么这个缓存的最大限制是多少?在缓存已满之前,它可以分析多少个操作?我们使用迷你探查器来分析测试套件的操作,测试套件会随着时间的推移而增长,所以我很担心这个问题.我应该担心吗?
在相关的说明.当所有测试都被分析后,我只需在迷你探查器的类中调用该Save方法SqlServerStorage.并且所有响应时间都保存到SQL Server数据库中.有没有什么方法可以Save更频繁地调用该方法而无需一次又一次地启动和停止探查器?我们只是在测试套件的开头启动它,并在所有测试都被分析后结束它.我们将该MiniProfilers表的一个条目视为一个分析会话.现在我不能多次调用'Save'方法,因为MiniProfilerId每次调用它都需要一个新的方法.
有什么建议?
我刚刚创建了一个新的MVC 4 Basic项目,并将该软件包添加到项目中,并将所需的代码添加到布局中,但在首次运行后没有任何反应.
这是布局:
@using StackExchange.Profiling;
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width" />
<title>@ViewBag.Title</title>
@Styles.Render("~/Content/css")
@Scripts.Render("~/bundles/modernizr")
</head>
<body>
@MiniProfiler.RenderIncludes()
@RenderBody()
@Scripts.Render("~/bundles/jquery")
@RenderSection("scripts", required: false)
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
更新
我已将此代码添加到了 global.asax.cs
protected void Application_BeginRequest()
{
MiniProfiler.Start();
}
Run Code Online (Sandbox Code Playgroud)
现在这段代码出现在HTML代码中:
<script async type="text/javascript" id="mini-profiler" src="/mini-profiler-resources/includes.js?v=xwYPDDH1blvqmxgsBweNC++H7CFU3KGQ+zFcVlJPsXw=" data-version="xwYPDDH1blvqmxgsBweNC++H7CFU3KGQ+zFcVlJPsXw=" data-path="/mini-profiler-resources/" data-current-id="6da0f73c-fa89-447b-92b1-56dc532947f4" data-ids="6da0f73c-fa89-447b-92b1-56dc532947f4" data-position="left" data-trivial="false" data-children="false" data-max-traces="15" data-controls="false" data-authorized="true" data-toggle-shortcut="Alt+P" data-start-hidden="false"></script>
Run Code Online (Sandbox Code Playgroud)
但是/mini-profiler-resources/includes.js?v=xwYPDDH1blvqmxgsBweNC++H7CFU3KGQ+zFcVlJPsXw=url返回404错误.
我正在运行umbraco 7的实例.但我似乎无法设置miniprofiler来使用它.
在我的global.asax上设置它:
protected void Application_BeginRequest()
{
if (Request.IsLocal)
{
MiniProfiler.Start();
}
}
protected void Application_EndRequest()
{
MiniProfiler.Stop();
}
Run Code Online (Sandbox Code Playgroud)
还定义了web.config上的处理程序:
<add name="MiniProfiler" path="mini-profiler-resources/*" verb="*" type="System.Web.Routing.UrlRoutingModule" resourceType="Unspecified" preCondition="integratedMode" />
Run Code Online (Sandbox Code Playgroud)
真的很感激任何帮助.