Tom*_*len 7 asp.net mvc-mini-profiler
我的web.config文件:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<configSections>
<section name="rewriter" requirePermission="false" type="Intelligencia.UrlRewriter.Configuration.RewriterConfigurationSectionHandler, Intelligencia.UrlRewriter" />
</configSections>
<system.web>
<customErrors mode="On" redirectMode="ResponseRewrite">
<error statusCode="500" redirect="~/Content/ErrorPages/500.aspx" />
<error statusCode="404" redirect="~/Content/ErrorPages/404.aspx" />
</customErrors>
<compilation debug="true" targetFramework="4.5.1" />
<httpRuntime targetFramework="4.5.1" />
<httpModules>
<add type="Intelligencia.UrlRewriter.RewriterHttpModule, Intelligencia.UrlRewriter" name="UrlRewriter" />
</httpModules>
</system.web>
<rewriter configSource="Config\URLRewrites.config" />
<appSettings configSource="Config\Settings.config" />
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<httpErrors errorMode="Custom">
<remove statusCode="500" subStatusCode="-1" />
<remove statusCode="404" subStatusCode="-1" />
<error statusCode="404" path="/Content/ErrorPages/404.aspx" responseMode="ExecuteURL" />
<error statusCode="500" path="/Content/ErrorPages/500.aspx" responseMode="ExecuteURL" />
</httpErrors>
<modules runAllManagedModulesForAllRequests="true">
<remove name="UrlRewriter" />
<add name="UrlRewriter" type="Intelligencia.UrlRewriter.RewriterHttpModule,Intelligencia.UrlRewriter" preCondition="managedHandler" />
</modules>
<handlers>
<add name="MiniProfiler" path="mini-profiler-resources/*" verb="*" type="System.Web.Routing.UrlRoutingModule" resourceType="Unspecified" preCondition="integratedMode" />
</handlers>
</system.webServer>
</configuration>
Run Code Online (Sandbox Code Playgroud)
我的global.asax:
using System;
using System.Web;
using StackExchange.Profiling;
namespace C3
{
public class Global : HttpApplication
{
protected void Application_BeginRequest(object sender, EventArgs e)
{
// Force to HTTPS
if (!HttpContext.Current.Request.IsSecureConnection)
{
Response.Redirect(Settings.SecureRootDomain + HttpContext.Current.Request.RawUrl);
}
if (Request.IsLocal)
{
MiniProfiler.Start();
}
}
protected void Application_EndRequest()
{
MiniProfiler.Stop();
}
}
}
Run Code Online (Sandbox Code Playgroud)
内容页:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="C3.Default"%>
<%@ Import Namespace="C3.Code" %>
<%@ Import Namespace="StackExchange.Profiling" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<%
SEO.CheckURL("/");
%>
<title></title>
<%=MiniProfiler.RenderIncludes() %>
</head>
<body>
<form id="form1" runat="server">
<div>
dum de dum
</div>
</form>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
和代码背后:
protected void Page_Load(object sender, EventArgs e)
{
var profiler = MiniProfiler.Current; // it's ok if this is null
using (profiler.Step("Set page title"))
{
Page.Title = "Home Page";
}
using (profiler.Step("Doing complex stuff"))
{
using (profiler.Step("Step A"))
{ // something more interesting here
Thread.Sleep(100);
}
using (profiler.Step("Step B"))
{ // and here
Thread.Sleep(250);
}
}
}
Run Code Online (Sandbox Code Playgroud)
任何想法为什么MiniProfiler没有显示任何东西?
更新
如果我https://127.0.0.1:3333/mini-profiler-resources/includes.js在浏览器中访问,它将返回JS文件!它只是不在页面本身上呈现包含.
如果我访问/mini-profiler-resources/results它会抛出错误:
你调用的对象是空的.
描述:执行当前Web请求期间发生未处理的异常.请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息.
异常详细信息:System.NullReferenceException:未将对象引用设置为对象的实例.
来源错误:
在执行当前Web请求期间生成了未处理的异常.可以使用下面的异常堆栈跟踪来识别有关异常的起源和位置的信息.
堆栈跟踪:
[NullReferenceException:对象引用未设置为对象的实例.]
StackExchange.Profiling.MiniProfilerHandler.GetSingleProfilerResult(HttpContext context)在c:\ TeamCity\buildAgent\work\1de24adb938b932d\StackExchange.Profiling\MiniProfilerHandler.cs:292 StackExchange.Profiling .MiniProfilerHandler.ProcessRequest(HttpContext context)位于c:\ TeamCity\buildAgent\work\1de24adb938b932d\StackExchange.Profiling\MiniProfilerHandler.cs:93 System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()+ 912 System. Web.HttpApplication.ExecuteStep(IExecutionStep step,Boolean&completedSynchronously)+164
确保显示 MiniProfiler 的页面在由 指定的 URL 中不包含被忽略的路径MiniProfiler.Settings.IgnoredPaths,默认情况下具有/content/,/scripts/和/favicon.ico。包含 URL 的页面/content/Default.aspx不会显示 MiniProfiler,但/Pages/Default.aspx会显示它。
或者,/content/从 中删除MiniProfiler.Settings.IgnoredPaths。