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

如何在.NET 6 F# Web API项目中配置ELMAH

在F# .NET 6 Web API中配置ELMAH SQL日志

步骤1:安装依赖包

先安装ELMAH核心包和SQL日志提供程序:

dotnet add package ElmahCore
dotnet add package ElmahCore.Sql

步骤2:修改Program.fs配置

把C#的配置逻辑转换成F#语法,同时在请求管道中启用ELMAH中间件,修改后的完整代码如下:

[<EntryPoint>]
let main args =
    let builder = WebApplication.CreateBuilder(args)
    
    // 注册控制器服务
    builder.Services.AddControllers()
    // 配置ELMAH使用SQL日志存储
    builder.Services.AddElmah<SqlErrorLog>(fun options ->
        options.ConnectionString <- "Server=localhost;Database=ELMAH;Integrated Security=True;"
    )

    let app = builder.Build()

    app.UseHttpsRedirection()
    // 添加ELMAH中间件(需放在UseAuthorization之前)
    app.UseElmah()
    
    app.UseAuthorization()
    app.MapControllers()
    
    // 运行应用并返回退出码
    let exitCode = app.Run()
    exitCode

关键语法说明

  • F#用fun options ->替代C#的options =>,属性赋值使用<-而非=
  • 泛型写法AddElmah<SqlErrorLog>与C#保持一致,通过<>指定泛型类型
  • 必须添加app.UseElmah()中间件,确保ELMAH能捕获请求生命周期内的异常
  • 中间件顺序需注意:UseElmah要放在UseAuthorization之前,避免遗漏授权阶段前的异常

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 23:05:30