如何验证EF Core版Azure Functions应用所用Azure SQL API版本是否过时
验证Azure SQL Database实际使用API版本的方法
以下几种方式可以快速确认你的Azure Functions应用实际使用的Azure SQL Database API版本:
数据库端直接查询当前连接的API版本
登录到你的Azure SQL Database,执行以下SQL查询,查看所有活跃连接的API版本信息:SELECT session_id, auth_scheme, client_interface_name, client_version, connection_options, -- 从connection_options中提取ApiVersion参数 SUBSTRING(connection_options, CHARINDEX('ApiVersion=', connection_options) + 10, 10) AS ApiVersion FROM sys.dm_exec_connections WHERE client_interface_name LIKE '%SqlClient%'结果里的
ApiVersion字段就是当前连接使用的API版本号,你可以根据应用的连接特征(比如session_id、client_version)定位到你的游戏应用对应的连接。通过应用日志捕获连接参数
开启Azure Functions的详细日志(或者应用的调试日志),在日志中查找包含ApiVersion的连接字符串片段。Microsoft.Data.SqlClient在建立连接时会自动传递API版本参数,EF Core底层调用SqlClient时,这些参数会被记录在调试级别的日志里。你可以筛选应用相关的日志条目,直接找到实际使用的API版本。确认Microsoft.Data.SqlClient版本对应的默认API版本
不同版本的Microsoft.Data.SqlClient默认使用的API版本不同,对应关系大致如下:- 2.0.x ~ 2.1.x:默认使用
2017-03-08API版本 - 3.0.x ~ 3.1.x:默认使用
2019-02-02API版本 - 4.0.x及以上:默认使用
2021-02-10API版本
你可以在应用代码中添加一行输出,获取当前运行时的SqlClient版本:
Console.WriteLine($"SqlClient Version: {Microsoft.Data.SqlClient.SqlClientFactory.Instance.Version}");结合上述版本映射,就能推断出默认使用的API版本。如果你的连接字符串手动指定了
ApiVersion参数,需要以该参数为准。- 2.0.x ~ 2.1.x:默认使用
内容的提问来源于stack exchange,提问作者joon
相关产品推荐
相关产品推荐

