SSMS可用的SQL链接服务器在.NET Core项目中无法识别求助
排查链接服务器在.NET Core项目中无法识别的问题
以下是针对该问题的具体排查步骤:
验证身份一致性
在SSMS中使用项目连接字符串里的同一账号执行存储过程[dbo].[spInt_ListMakes],如果同样报错,说明是权限或链接服务器登录映射问题:- 执行
EXEC sp_helplinkedsrvlogin '96.86.222.9';查看登录映射,确保当前账号有对应到链接服务器的权限配置; - 若使用Windows身份验证,需确认项目运行身份(本地调试的当前用户、IIS应用池身份)在链接服务器上有访问权限,且链接服务器配置了该Windows用户的映射。
- 执行
检查链接服务器配置
- 确保链接服务器的RPC Out选项开启(存储过程跨服务器调用需要此配置):
EXEC sp_serveroption '96.86.222.9', 'rpc out', true; - 确认链接服务器的IP、数据库名拼写和SSMS中使用的完全一致,避免别名或实例名混淆。
- 确保链接服务器的RPC Out选项开启(存储过程跨服务器调用需要此配置):
确认项目连接的SQL实例
核对项目连接字符串中的服务器地址,确保和SSMS连接的是同一个SQL Server实例——如果项目误连到其他环境的数据库,该实例可能未配置目标链接服务器。检查SQL Server远程访问设置
- 右键SQL实例→属性→连接,勾选「允许远程连接到此服务器」;
- 若使用命名实例,确保SQL Server Browser服务处于运行状态。
核对存储过程中的链接服务器引用
打开[dbo].[spInt_ListMakes],确认内部对链接服务器的引用和SSMS中执行的SELECT * From [96.86.222.9].[8903_Interchange].dbo.Carline完全一致,无拼写错误或别名差异。更新SQL客户端库
检查项目中Microsoft.Data.SqlClient(.NET Core推荐)的版本,尝试更新到最新稳定版,旧版本可能存在链接服务器兼容性问题。
内容的提问来源于stack exchange,提问作者joeb
相关产品推荐
相关产品推荐

