zoukankan      html  css  js  c++  java
  • 客户端可以连接 .Net程序不能连接SQL Server 2000

        工作机器(开发ASP.Net程序,.Net Framework 1.1)在域里面,SQL 2000服务器不在域中,突然出现SQL企业管理器和查询分析器都可以连接到SQL 2000服务器,而.Net程序则连不上,报错“SQL Server服务器不存在或拒绝访问”。
        以前好像也这样用过,并没有出问题,看来可能跟域的控制策略有关系,这段时间公司域策略调整比较频繁,没有登陆域的机器和域里面机器的互访渐渐出问题。
        折腾了一阵没有结果,后来猜想也许是ASP.Net使用的帐号不能通过SQL 2000服务器验证的问题。其实一直也不会怀疑这方面,因为Client连SQL Server服务器时,使用的是网络端口(默认1433端口)通讯,不需要SQL Server所在服务器操作系统的用户验证。
     
        测试如下:
        1. 我的域帐号是可以完全访问控制SQL 2000服务器的机器的。在工作机的C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\CONFIG里面,把machine.config文件中processModel节点的userName改为我的域帐号,password设为我的域帐号的密码,重启IIS后登陆系统,成功。任务管理器里面显示asp_net进程的启动用户为我的域帐号。
        2. 在工作机上建立一个Windows帐号ASPNETTest,加入到Administrators组中(注意帐号第一次登陆系统必须修改密码的选项要去掉),设置密码(假设为qazQAZ123)。将C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\CONFIG的machine.config用户名修改为ASPNETTest,密码设为这个帐号的密码(qazQAZ123)。在SQL 2000服务器上建立一个Windows帐号ASPNETTest,密码设成跟工作机一致(qazQAZ123),也加入到Administrators组中。重启IIS后登陆系统,成功。任务管理器里面显示asp_net进程的启动用户为ASPNETTest。
     
        SQL 2000服务器的Security里面,设置的是SQL Server and Windows。如果说上面的测试跟这个有关系的话也是说不通的,程序的连接字符串里面指定SQL Server认证方式,如果SQL Server的帐号、密码不正确,会连不上SQL Server,只能说在这种情况下,SQL Server认证和Windows认证都需要通过。
        另外,ASP.Net将工作机上自己使用的帐号、密码认证信息发送给SQL 2000服务器进行Windows认证,感觉也怪怪的。是ASP.Net在这样做,还是因为域的安全控制策略导致了一个Windows的认证过程?

  • 相关阅读:
    <数据结构基础学习>(四)链表 Part 2
    <Android基础> (四) Fragment Part 2
    swagger忽略方法里参数的方法
    ActiveMq
    Tomcat日志归档
    java代理的实现
    包装类型和基础类型是如何比较的
    hashmap
    可达性分析中,可以作为GcRoots的对象
    使用Navicat 连接oracle出现 “ORA-03135: Connection Lost Contact”
  • 原文地址:https://www.cnblogs.com/RicCC/p/590233.html
Copyright © 2011-2022 走看看