.NET Core 2.0升级后数据库连接报错:不支持'persistsecurity info'关键字
解决.NET Core 2.0升级后"persistsecurity info"关键词不支持的问题
嘿,这个问题我之前帮人排查过,其实就是连接字符串里的参数名格式踩坑了!
问题原因
升级到.NET Core 2.0之后,SQL Server的连接字符串解析逻辑变得更严格了。你配置里写的PersistSecurity Info=False是错误的参数名写法——正确的参数名应该是**Persist Security Info**(注意Persist和Security之间必须有空格,Security和Info之间也要保留空格)。解析器把连在一起的PersistSecurity加上空格后的Info当成了一个不认识的关键词,所以抛出了ArgumentException。
修复步骤
- 打开你的
Appsettings.json,找到DBConnection的连接字符串,把PersistSecurity Info=False替换成Persist Security Info=False - 顺便检查一下连接字符串里截断的部分(比如你写的
Connection T...),确保其他参数名也符合规范,比如完整的Connection Timeout(如果是超时参数的话),不要出现类似的连写错误 - 确认你的项目引用的
Microsoft.EntityFrameworkCore.SqlServer版本和.NET Core 2.0兼容,建议使用2.0.x系列的版本,避免版本不匹配带来的额外问题
举个修正后的连接字符串示例:
"ConnectionStrings": { "DBConnection": "Server=tcp:server.address,1433;Initial Catalog=SmartDB;Persist Security Info=False;User ID=username;Password=password;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;" }
内容的提问来源于stack exchange,提问作者Isaac
相关产品推荐
相关产品推荐

