• nancy的诊断2


    接上文.

    一 再看看第二个面板内容

    点击带文号 的  Interactive Diagnostics 这个面板 如下

    上面的是诊断程序,默认是系统提供的测试用的诊断程序.  你可以 通过实现IDiagnosticsProvider接口,来使用自己的诊断程序,然后加入到配置就可以了

    如 

    public class CustomDiagnosticsProvider : IDiagnosticsProvider {
        public string Name
        {
            get { return "Custom diagnostics provider"; }
        }
        
        public string Description
        {
            get { return "Provides custom diagnostics capabilities"; }
        }
        
        public object DiagnosticObject
        {
            get { return this; }
        }
        
        
        
        
        
        [Description("Greets a person using their name")]
        [Template("<h1>{{model.Result}}</h1>")]  //呈现模板
        public string Greet(string name)
        {
            return string.Concat("Hi, ", name);
        }
    }
    

      

    然后在启动器中加入 设置

    protected override void ConfigureApplicationContainer(TinyIoCContainer container)
    {
    container.Register<IDiagnosticsProvider>(new CustomDiagnosticsProvider());

    }

    这样就可以了.

    其实这玩意没多大用,就是反射CustomDiagnosticsProvider中的方法 ,供你测试.

    第二个是测试路由和视图的,就不说了.

    二  最后一个面板 Request Tracing

    点击进去,会出现一个session的列表  ,从 return this.Response.AsJson(this.sessionProvider.GetSessions().Select(s => new { Id = s.Id }).ToArray()); 获取的

    我的没有session 就是 这样

    点击一个sessionid 就会现实相关的信息 

      Get["/sessions/{id}"] = ctx =>
                {
                    Guid id;
                    if (!Guid.TryParse(ctx.Id, out id))
                    {
                        return HttpStatusCode.NotFound;
                    }
    
                    var session =
                        this.sessionProvider.GetSessions().FirstOrDefault(s => s.Id == id);
    
                    if (session == null)
                    {
                        return HttpStatusCode.NotFound;
                    }
    
                    return this.Response.AsJson(session.RequestTraces.Select(t => new
                        {
                            t.RequestData.Method,
                            RequestUrl = t.RequestData.Url,
                            RequestContentType = t.RequestData.ContentType,
                            ResponseContentType = t.ResponseData.ContentType,
                            RequestHeaders = t.RequestData.Headers,
                            ResponseHeaders = t.ResponseData.Headers,
                            t.ResponseData.StatusCode,
                            Log = t.TraceLog.ToString().Replace("
    ", "").Split(new[] { "
    " }, StringSplitOptions.None),
                        }).ToArray());
                };
    

      

    总的来说,这个东西,没有想象中有用.

    所有的东西,只要查看 源文件就知道了.在这里

    参考地址 https://github.com/NancyFx/Nancy/wiki/Diagnostics

  • 相关阅读:
    javajava.lang.reflect.Array
    基于annotation的spring注入
    jquery插件
    spring的注入方式
    jqueryajax
    javascript基础
    xml基础
    js 获取FCKeditor 值
    TSQL 解析xml
    Linq
  • 原文地址:https://www.cnblogs.com/wang2650/p/5039543.html
Copyright © 2020-2023  润新知