我想将托管在Web服务器上的asp.net应用程序与托管在另一个远程位置的sql server 2012 db连接起来。 我在sql server上启用了TCP / IP,也为ip1和ipall设置了端口6322。 但如果我去我的网络服务器并telnet到数据库服务器,没有建立连接。 在ASP.net页面中只是为了测试连接我正在使用连接字符串,如下所示
<add name="DBConnectionStringTEST"
connectionString="Data Source=<db ip address>; Initial Catalog=<db name>; Persist Security Info=True;User ID=<username>;Password=<password>;connection timeout=0;Max Pool Size = 100;Pooling = True"
providerName="System.Data.SqlClient" />
我的问题,
1)有什么我想念的东西,比如错误的端口。
2)我是否需要提供db ip address(client_net_address)或实际的db服务器地址。
3)我是否需要请求服务器管理员允许连接Web服务器的IP地址。
4)测试Web服务器是否可以与sql服务器通信而不必在每次更改时都修改asp.net应用程序中的连接字符串的最快方法是什么。
注意:我搜索过其他类似主题,但找不到任何对我有用的答案。
答案 0 :(得分:1)
1)有什么我想念的东西,比如错误的端口。
从您发布的连接字符串看起来您正在使用默认实例。如果它确实命名了实例,那么在你的连接字符串中提供相同的信息。
2)我需要提供db ip address(client_net_address)还是实际的 数据库服务器地址。
应该是实际的DB服务器IP地址/主机名以及Db服务器安装的实例名称。
3)我是否需要请求服务器管理员允许Web服务器ip 地址连接。
如果您提供正确的IP地址/主机名/端口/凭证,那么它应该允许您通过连接。 (假设您的数据库管理员已经为您创建了数据库用户)
4)测试Web服务器是否可以与之通信的最快方法是什么? sql server无需修改asp.net中的连接字符串 每当我做出改变时都会申请。
创建UDL
文件。打开notepad
并将其另存为test.udl
。保存后 - &gt;双击文件 - &gt;提供所有信息并测试连接。它应该如下所示
修改强>
配置通用数据链接(.udl)文件
双击名为test.udl
在Provider
标签上选择SQL Server Native client 10.0
在Connection
标签
输入BRR=SQL-N1
作为Server Name
在Username
和password
部分提供SA
和password
点击Test Connection
有关详细信息,请参阅Here。
答案 1 :(得分:1)
如果没有明确的端口或实例名称规范,将使用默认的1433端口。在连接字符串中指定自定义端口:
<add name="DBConnectionStringTEST"
connectionString="Data Source=<db server ip address or host name>,6322; Initial Catalog=<db name>; Persist Security Info=True;User ID=<username>;Password=<password>;connection timeout=0;Max Pool Size = 100;Pooling = True"
providerName="System.Data.SqlClient" />
测试网络连接的简便方法是使用TELNET:
TELNET <db server ip address or host name> 6322
如果成功,这将显示一个空的控制台窗口。按ctrl-C关闭。
如果您没有安装TELNET,还可以使用下面的Powershell命令验证端口连接:
6322 | % { echo ((new-object Net.Sockets.TcpClient).Connect("<db server ip address or host name>",$_)) "server listening on TCP port $_" }