ISA防火墙客户端和SQLSERVER客户端的问题

有外来程序安装基于.NET FRAMEWORK 3.5的应用程序在内网的PC上,需要通过ISA防火墙客户端经过服务器上的ISA2006 SP1访问外网的SQLSERVER2005数据库。

 

        按照以往经验,需要配置一条SQLSERVER2005服务器所在的IP地址的出站规则,并且并不需要设置一条基于域名的规则。

 

        该应用程序通过域名访问目标数据库一切正常。

 

        但我在同一台机器上用SQLSERVER 2005 MANAGEMENT STUDIO同样用域名访问目标数据库则失败了:超时时间已到。在操作完成之前超时时间已过或服务器未响应。于是我用IP地址访问目标数据库,则成功了。

 

        查看ISA服务器的日志,多了几条记录,典型的一条就是0x80074e21 FWX_E_ABORTIVE_SHUTDOWN。

 

        为了找到原因我开始用VS2008自己写程序测试:
        sqlConn = new SqlConnection(@"Data Source=IP地址;Initial Catalog=***;User ID=***;Password=***");
        成功!

 

        sqlConn = new SqlConnection(@"Data Source=域名;Initial Catalog=***;User ID=***;Password=***");
         还是失败!

 

        我非常困惑,为什么外来的程序用域名访问能够成功呢。

 

        于是打开控制面板中的数据源 (ODBC),建立一个SQLSERVER的连接,这个时候发觉用IP地址也不能成功,奇怪中看了下客户端配置去掉了动态决定端口,指定的端口为1433,于是用IP连接,成功了。接着用域名测试也成功了。联想到在整个测试过成中询问过其他人用PB做的程序是能成功访问远程数据库的,于是恍然大悟,成功与不成功原因在与SQLSERVER的驱动上面,成功的都是使用SQLOLEDB的驱动的。

   

      于是在C#中写到:
      OleDbConnection cnn = null;

   string cnnstr="Provider=SQLOLEDB.1;Initial Catalog=***;Data Source=域名,1433;User ID=***; Password=***";
       cnn = new OleDbConnection(cnnstr);
       cnn.Open();
       成功了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值