如何在.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
相关产品推荐
相关产品推荐

