【发布时间】:2013-07-31 00:25:17
【问题描述】:
我正在为我的朋友创建一个使用 SQL Server Express 数据库的 WinForms 程序。在本地,我可以很好地连接到我的 SQL Server Express,当我将应用程序部署到他的计算机时,它也可以正常工作。我很难从我的机器连接到他的 SQL Server Express 实例(我试图在 vs2012 中以调试模式运行程序,但连接到他的数据库)。该程序使用实体框架以防万一(我认为不重要)。
我们已经设置了他的防火墙以允许我的 IP 地址访问他的计算机和他的 SQL Server...所以我可以通过远程桌面登录,我也可以使用 SSMS 从我的电脑连接并查看所有数据库... .. 但是为什么我不能使用 vs2012 连接?我认为它与连接字符串有关,但尚未找到可行的解决方案。
这是我尝试过的:
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