今天新装了一个DBServer (Windows Server 2008 R2),但是在客户端跑之前的应用时却发现出错了,Debugg后发现的错误如下:
由InnerException可知时DB Server没有连上,这时想起安装SQL Server 2008 R2的时候貌似有个'Windows 防火墙'的警告,当时也没去管它,现在看来可能是防火墙设置有问题。于是将DB Server上的防火墙关掉,重新跑了一下应用,OK了,那就应该是防火墙把某个端口给滤掉了吧。
百度了一下,果然是的,在Windows Server 2008 (+) 上安装SQL Server, 防火墙是不会自动打开SQL Server实例的默认端口1433的,需要手动添加一下入站规则(Cmd命令行,当然也可以再防火墙高级设置中新增入站规则):
netsh advfirewall firewall add rule name="SQL Server" dir=in action=allow protocol=TCP localport=1433
至此,问题解决。
References: