【问题标题】:Connection string for SQL Server Express on remote computer?远程计算机上 SQL Server Express 的连接字符串?
【发布时间】:2013-07-31 00:25:17
【问题描述】:

我正在为我的朋友创建一个使用 SQL Server Express 数据库的 WinForms 程序。在本地,我可以很好地连接到我的 SQL Server Express,当我将应用程序部署到他的计算机时,它也可以正常工作。我很难从我的机器连接到他的 SQL Server Express 实例(我试图在 vs2012 中以调试模式运行程序,但连接到他的数据库)。该程序使用实体框架以防万一(我认为不重要)。

我们已经设置了他的防火墙以允许我的 IP 地址访问他的计算机和他的 SQL Server...所以我可以通过远程桌面登录,我也可以使用 SSMS 从我的电脑连接并查看所有数据库... .. 但是为什么我不能使用 vs2012 连接?我认为它与连接字符串有关,但尚未找到可行的解决方案。

这是我尝试过的:

这些来自ConnectionStrings.com:

Server=100.100.100.100\SQLExpress;Database=TestDB;User Id=UserID;Password=myPassword;

DataSource=100.100.100.100\SQLExpress;Database=TestDB;User Id=UserID;Password=myPassword;

显然 IP 地址已更改,以用于本文。

有什么想法吗?

【问题讨论】:

  • 你的意思是你设置了防火墙?你在同一网络上或通过 NAT 设备(路由器)连接到他的计算机?
  • 哦,这些连接字符串是什么? EF 在创建 tsql 脚本时为您创建自定义字符串,位于项目的 app.config 文件中
  • 他“设置”了防火墙,以便我可以连接到他的计算机,两者都在不同的网络(NAT 设备)上。第一个连接字符串是 EF 生成的(但我是在本地生成的,而不是使用他的 IP 地址),所以我想我可以更改 IP 地址就可以了,但不幸的是事实并非如此。
  • “有困难”是什么意思?您收到错误消息吗?如果是这样,它是什么?你试过Data Source而不是DataSource吗?您是否确认他的 SQL Browser 服务正在运行? SQL Express 是否设置为允许远程连接?
  • @AaronBertrand - 感谢您的建议,因为这是问题所在。我使用的是DataSource 而不是Data Source,这解决了问题。如果您将其发布为答案,我可以标记它,以便您获得信用。

标签: c# sql-server visual-studio-2012 sql-server-express


【解决方案1】:

你已经使用了连接字符串属性:

DataSource

没有这样的东西,我怀疑这只是一个错字(使用剪切和粘贴而不是转录是值得的)。该属性中实际上有一个空格,所以应该是:

Data Source

【讨论】:

  • 谢谢亚伦...隧道视觉有时很糟糕 :)
【解决方案2】:

这里列出了您需要在另一台计算机上检查的内容:

  • 是否启用了 TCP/IP 协议?转到 SQL Server 配置管理器 -> SQL Server 网络配置 -> {instance} 的协议
  • 在配置管理器中启用了哪些 IP 地址进行侦听?转到 TCP/IP 属性 -> IP 地址选项卡
  • SQL Server 浏览器已启动
  • 防火墙设置正确 - 您希望在端口 1433 上启用 TCP 和 UDP 流量
  • 服务器允许远程连接?在 SSMS 中打开该实例的属性并检查连接选项卡。

【讨论】:

    猜你喜欢
    • 2013-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多