这两天遇到了一个非常奇怪的事情,我们公司有一个业务系统用的是ASP和ASP.NET混合开发的,ASP部分可以正常访问,可是ASP.NET部分一访问就报错,说“数据库不存在或访问被拒绝”。
我在网上搜索了一下相关的资料,起先以为是.net配置错误,但是经过一天的修改.NET的 machine.config 和 web.config 文件,发现并没有什么效果。因为ASP是可以访问数据库的,所以我并没有想到会是数据库出了问题。后来在一篇网站的文章上看到了有可能是数据库的1433端口没有正常配置的时候,就尝试着使用了一下netstat -an命令检查数据库服务器的端口情况,还真得没有找到1433端口的状态,说明1433端口此时是不可用的。尝试用 telnet 命令检查1433端口,返回无法登陆的错误信息。
于是就使用SQL Server自带的“服务器网络实用工具”来进行设置,发现已经启用了TCP/IP协议,并且端口也是1433,估计可能服务有问题吧,于是先把1433换成1444,确定,重启SQL Server服务,然后再把端口换回1433,再次重启SQL Server服务。这时,再使用 netstat -an 命令,发现熟悉的1433端口又回来了,使用 telnet 也可以正常登陆1433端口,问题解决,再看 ASP.NET 程序,也是运行如常了。