【问题标题】:Classic ASP On Server 2008 & SQL 2008Server 2008 和 SQL 2008 上的经典 ASP
【发布时间】:2010-09-23 00:31:35
【问题描述】:

我目前正在将我的一个客户站点迁移到 Windows Server 2008 和 SQL 2008 设置,但我在从站点连接到数据库时遇到了很多问题。

我已将数据库从 SQL 2k 备份恢复到 SQL 2008 服务器,我已正确设置用户并且可以在管理工作室中以该用户身份登录。我已经复制了站点 .asp 文件,这些文件在没有数据库访问时可以正常加载。但是当我尝试访问数据库时,它失败并显示“用户登录失败......”。

我已经重置了密码,创建了新用户,将连接字符串从 OLEDB 更改为 SQL Native Client 并再次返回,但不断出现错误。我什至设置了一个虚拟数据库和用户,但仍然遇到同样的问题。

有谁知道为什么会发生这种情况?我缺少 SQL 或 Windows 中的设置吗?

我已经在这里工作了好几个小时,如果有任何想法,我将不胜感激。

更新:如果我在连接字符串中输入了错误的登录详细信息,我会在 conn.open 上收到错误,但如果我输入正确的登录详细信息,我会在 cmd.activeconnection = conn 上收到错误。不确定这是否有帮助。

【问题讨论】:

  • 我目前使用的连接字符串是 Const connStr_FC08 = "Driver={SQL Server}; Server=DS-47500; Database=TestDB; Uid=TestLogin; Pwd=test;"
  • 是的!在尝试了很多其他建议之后,它对我有用!谢谢
  • @Chris Morledge,你有没有解决这个问题?我有一个非常相似的问题。我可以使用管理工作室连接到 sql 服务器,但不能通过经典 asp。

标签: sql-server asp-classic adodb


【解决方案1】:

我刚刚在我们的 Windows 2008 和 SQL Server 2008 上遇到了一些类似的问题。据我所知,这些是我们使用 SQL 身份验证启用连接所经历的步骤

  1. 以管理员身份登录 SQL Server,更改服务器属性以允许混合模式身份验证(SQL 身份验证和 Windows 身份验证)

  2. 重启 SQL Server 服务

  3. 使用 SQL Server 配置管理器确保协议已启用 (TCP/IP)

关于连接性,我们遇到了很多防火墙问题。有时,用户登录失败并不是问题的真正原因。我通常会创建一个带有 udl 扩展名的文件来测试连接性。

当您登录到 SQL Server 时,您是否使用 Windows 身份验证?

希望这会有所帮助。

【讨论】:

  • 感谢您的回复,我之前已经测试过您的第 1 点和第 2 点,但这并没有什么不同。我确实尝试设置一个有效的 UDL,所以我复制了连接字符串,现在它返回错误“需要对象:'Provider=SQLOLEDB.1;' " 在线 cmd.activeconnection = conn
  • 您需要删除 'Provider=SQLOLEDB.1;'如果您使用的是 SqlClient,则从连接字符串
【解决方案2】:

听起来像是 ADO 的问题。如果您已经拥有最新版本,您是否尝试过安装最新版本或刷新安装?

编辑:抱歉,没有注意到您运行的是 Windows Server 2008。该版本附带 Windows DAC 6.0,据我所知无法重新安装。由于您的 UDL 文件有效,我唯一能想到的就是确保您的 ASP 站点的用户身份可以访问包含 DAC dll 的文件夹。您可以尝试从 Sysinternals 运行 FileMon 并检查这些文件的访问被拒绝条目。

【讨论】:

  • 你是指 MDAC 的吗?我试图找到一些可下载的但不能用于 Server 2008
【解决方案3】:

我得到了解决方案,经典的asp连接字符串是:

myConnection.ConnectionString = "Driver={SQL Server};Server=xxx.xxx.xxx.xxx,1533;Database=mydb;Uid=user123;Pwd=user123d;"

【讨论】:

    【解决方案4】:

    我也遇到过类似的问题。

    我从这里更改了连接字符串:

    DRIVER={SQL Server};SERVER=80.82.xxx.xxx;DATABASE=mydatabasename;UID=myusername;PWD=mypassword
    

    到这里:

    Provider=SQLNCLI10.1;SERVER=80.82.xxx.xxx;DATABASE=mydatabasename;UID=myusername;PWD=mypassword
    

    它奏效了。

    您可能想尝试不同的提供程序设置。

    【讨论】:

      【解决方案5】:

      自从您将数据库恢复到新服务器后,您的数据库上可能现在有一个孤立用户。您需要将孤立用户重新连接到服务器登录。详情请见How to connect an existing SQL Server login to an existing SQL Server database user of same name

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-09-01
        • 2013-02-01
        • 1970-01-01
        • 2010-11-15
        • 1970-01-01
        • 1970-01-01
        • 2010-09-14
        • 1970-01-01
        相关资源
        最近更新 更多