在EF Core中启用SqlClient事件追踪排查Windows服务启动失败问题
问题:ASP.NET Core 6 + EF Core 部署为Windows服务时SQL连接失败,需追踪SqlClient内部事件
我在ASP.NET Core 6应用中使用Entity Framework Core,发布后的可执行文件通过命令行启动正常,但安装为Windows服务时启动失败。尝试过将服务配置为以SYSTEM、NETWORK SERVICE甚至我的Windows AD账户运行,均未成功,每次启动都会抛出以下错误:
Microsoft.Data.SqlClient.SqlException (0x80131904): 建立与SQL Server的连接时发生了与网络相关或特定于实例的错误。找不到服务器或无法访问服务器。验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。(provider: Named Pipes Provider, error: 40 - 无法打开到SQL Server的连接)
System.ComponentModel.Win32Exception (2): 系统找不到指定的文件。
为了排查程序在DbConnectionPool.TryGetConnection中的执行细节,我需要为SqlClient启用事件追踪,捕获相关的追踪事件。但现有示例需要手动创建SqlClientListener类并在数据访问时主动使用,而我的场景中是EF Core内部调用Microsoft.Data.SqlClient,EF Core提供的内置日志消息类别仅覆盖自身逻辑,无法追踪到SqlClient的内部细节。
想问:有没有办法在EF Core的场景下实现对SqlClient内部事件的追踪?
内容的提问来源于stack exchange,提问作者Jimenemex
相关产品推荐
相关产品推荐

