c#连接sql server有关端口号的小发现
最近写一个数据同步的小工具,需要将一个数据库中的数据导入到另一个数据库的表中。于是将远程服务器的信息写到了配置文件中,如服务器名:192.168.0.1,连接没有问题。可是客户那边突然说数据库的端口发生了改变,不是默认的1433了,于是我在本地调试的时候在服务器的名字后面加上了端口号,192.168.0.1:1433,没有问题。在服务器的名字后面加上了错误的端口号:192.168.0.1:1234,结果出现了数据库不能连接的诸如此类的错误。好的,想当然地认为程序是没有问题的。可是当我把程序部署到远程服务器以后,日志中还是出现了数据库不能连接的错误,我就郁闷了,本地测试的没有问题呀,怎么到远程的服务器就不行了呢?然后推测是不是远程服务器连不上呀?于是就用本地的sql server去连接远程的数据库,惊奇地发现可以连上,这是怎么回事呢?找了好半天终于发现,原来是服务器名字和端口号之间是不能用“:”来隔开的,需要用“,”来隔开。当时直接抓狂了,为啥呀,原来测试的192.168.0.1:1433怎么就可以连上呢?
最后得出的结论就是,sql server连远程服务器的时候首先检测服务器的默认端口,如果连不上才把","两边的内容分开,再去用指定的端口号,这样的话上面我所遇到的问题就理所当然了。