使用FILEDSN配置OleDBConnection时出现无效授权规范错误,求调试思路
调试方向建议
检查DSN文件内容
直接打开你的.dsn文件,确认里面的身份验证配置和Windows身份验证匹配。如果文件里存在UID或PWD字段(哪怕是空值),会和Windows身份验证冲突,删掉这些项。同时确保文件里包含Trusted_Connection=Yes或者Integrated Security=SSPI,没有的话手动加上。验证DSN文件有效性
打开Windows的ODBC数据源管理器(搜索ODBC即可找到),找到对应的DSN文件,点击“测试连接”。如果测试失败,跟着向导重新生成DSN,全程选择Windows身份验证,别碰SQL Server身份验证的选项。强制指定身份验证方式
修改连接字符串,把Windows身份验证参数和FILEDSN合并,强制覆盖DSN里的配置:OleDbConnection con = new OleDbConnection(); con.ConnectionString = "Provider=MSOLEDBSQL;FILEDSN=C:\\Path\\to\\my\\file.dsn;Integrated Security=SSPI"; con.Open();检查驱动兼容性
确认MSOLEDBSQL驱动版本和你的SQL Server版本匹配。如果是旧版SQL Server,换成SQLOLEDBProvider试试,看是否能解决授权错误。排查文件权限
程序运行的账户(比如本地服务账户、IIS应用池账户)可能没有读取DSN文件的权限。右键DSN文件,进入“安全”选项卡,给运行程序的账户添加读取权限。
内容的提问来源于stack exchange,提问作者sasha raminiz
相关产品推荐
相关产品推荐

