You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET 4.6.2 Web Forms应用中NLog AspNetRequest布局渲染器无输出求助

解决ASP.NET 4.6.2 Web Forms中NLog AspNetRequest渲染器返回空值的问题
  • 必须安装适配ASP.NET Framework的NLog.Web.AspNet包,不要使用NLog.Web.Core(适配.NET Core),确保包版本与NLog主包一致。
  • 注册NLog的ASP.NET HTTP模块:
    • 代码方式:在Global.asax的Application_Start方法中添加NLog.Web.NLogModule.Register();
    • Web.config配置方式:在<system.webServer>节点下添加模块注册:
      <system.webServer>
        <modules>
          <add name="NLog" type="NLog.Web.NLogHttpModule, NLog.Web" />
        </modules>
      </system.webServer>
      
  • 确保代码运行在HTTP请求上下文中:如果是在后台线程、Application_Start等无HttpContext的场景调用,AspNetRequest系列渲染器会返回空值,必须在页面生命周期、HttpHandler等有请求上下文的环境中使用。
  • 检查渲染器使用细节:
    • ${aspnet-request:header=Referer}拼写正确(注意是Referer不是Referrer),但只有当请求确实携带Referer头时才会有值
    • ${aspnet-appbasepath}返回应用根路径,需确保请求上下文存在
  • 代码配置NLog时,可显式启用ASP.NET集成:
    var config = new NLog.Config.LoggingConfiguration();
    // 添加你的dbTarget等配置
    config.Variables["aspnet-request-is-available"] = "true";
    NLog.LogManager.Configuration = config;
    

内容的提问来源于stack exchange,提问作者tnk479

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 12:01:05