You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

添加表后部署服务器的Dataset连接SQL Server异常求助

问题排查与解决方案

核心问题

Windows Form程序基于Dataset开发,部署到服务器后原本运行正常,在SQL Server和Dataset中新增表后,本地运行无异常,但服务器端打开新表时抛出SQL连接错误:

System.Data.SqlClient.SqlException (0x80131904): A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)

已排除Dataset新增表时硬编码数据库路径的情况。

排查与修复步骤

  • 核对新表的连接字符串配置
    新增表时Dataset可能自动生成独立的连接配置,务必检查服务器端程序的app.config(或ClickOnce部署后的配置文件),确认新表使用的连接字符串和原有表完全一致,重点校验SQL Server实例名、认证方式、数据库名称,避免本地调试用的连接串被打包到部署版本中。

  • 启用SQL Server的Named Pipes协议
    报错指向Named Pipes Provider,在服务器操作:

    1. 打开SQL Server配置管理器,展开「SQL Server网络配置」→ 目标实例的「协议」
    2. 右键「Named Pipes」选择启用,重启SQL Server服务生效
    3. 同时确保「TCP/IP」协议也处于启用状态,部分场景需要双协议支持
  • 检查数据库权限与程序运行账号

    1. 确认运行程序的账号(服务账号/登录账号)拥有新表的读写权限,原有表权限不会自动继承到新表,需在SQL Server中手动为账号分配新表的SELECT等必要权限
    2. 若用Windows认证,在服务器上用该账号登录后,通过SSMS测试连接数据库并访问新表,验证身份是否能正常访问
  • 校验Dataset的TableAdapter配置
    打开本地项目的Dataset设计器:

    1. 确认新增表的TableAdapter使用项目统一的连接字符串,而非临时生成的本地连接
    2. 检查TableAdapter的SQL命令,避免存在USE [LocalDBName]这类硬编码数据库名称的语句,确保适配服务器端数据库名
  • 测试服务器端网络连通性
    在服务器上执行命令测试SQL Server连通性:

    # 测试TCP/IP端口(默认1433)
    Test-NetConnection -ComputerName SQL服务器IP -Port 1433
    # 测试Named Pipes管道
    Test-NetConnection -ComputerName SQL服务器名 -PipeName sql\query
    

    若连通失败,检查服务器防火墙是否开放了SQL Server端口,以及Named Pipes的管道访问权限

内容的提问来源于stack exchange,提问作者Dave

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 03:10:17