需要帮助了解网站数据库问题
Posted
技术标签:
【中文标题】需要帮助了解网站数据库问题【英文标题】:Need help understanding website database issues 【发布时间】:2017-01-03 14:11:06 【问题描述】:我希望了解我在使用我的一个网站时遇到的问题。在我详细介绍之前,我想说网络开发从来都不是我的事,我已经接管了公司网站的网络职责。我的大部分工作都是从外观上更新网站。
最近,我们的虚拟主机正在更改服务器平台,并要求所有客户将其网站迁移到具有新软件和兼容性的新平台。提供商说我们当前的站点可以在新平台上运行,但是由于迁移我们的 ASP 文件以及它们与我们的数据库文件的连接不起作用。咨询了web主机的技术人员后,他们说了以下让我一无所知的事情。
你需要使用Microsoft.Ace.OLEDB.12.0驱动而不是Microsoft.Jet.OLDBD.4.0的连接字符串
首先,这个驱动连接到什么;什么节目。我使用旧版本的 Microsoft Access 来编译网站使用的数据库 .mdb 文件,如果需要通过更新版本来完成更新,我们可以这样做。但我们不想不必要地这样做。
连接字符串需要放在哪里?我查看了网站上的一些较旧的配置文件,只发现其中一个包含连接字符串。我更改了该字符串以匹配我认为需要的字符串,但它没有解决问题。
本质上是数据库文件没有被正确读取,我们需要找出原因,更重要的是如何修复它。
请记住,我对数据库/asp.net文件/html/web服务器如何协同工作的了解不多,而最初设置此环境的人不再在附近询问,所以它拿起了从头开始。
编辑
这里有更多信息 首先,这是错误:
Microsoft Access 数据库引擎错误“80004005”
未指定的错误
/config/include/LookupIndexPrices.asp,第 13 行
这是第 13 行:
GetRepRecordSet.Open "select * from RepLinks where Initials = '" & strEnteredPwdRep & "'", ConnectString("CMPRepData")
当我要求我们的虚拟主机帮助我解决问题时,技术人员的回复如下:
为您的网页显示的错误消息是由于数据库连接错误。我可以看到您正在为您的网站使用 MS Access 数据库。您似乎正在使用 Microsoft.Jet.OLDBD.4.0 驱动程序进行数据库连接。您的主机帐户托管在我们的 2012 服务器上,它不支持使用旧的数据库驱动程序。请确保在脚本中使用 Microsoft.Ace.OLEDB.12.0 驱动程序进行数据库连接。
该驱动程序在哪里需要更新,它附属或连接到什么,以及如何将其更正为更新版本?
【问题讨论】:
连接字符串可能(希望)放置在 web.config 文件中或在您的应用程序中打开数据库连接的任何位置。 所以总结一下——你对“数据库/asp.net 文件/html/web 服务器”一无所知,而且不请人知道,你相信你可以解决你的问题吗? 当某些东西在 .net 中不起作用时,您将收到异常。您需要找到记录此异常的位置(一个文件,或者如果未在事件日志中捕获)。复制上述问题中的整个异常,包括消息、完整类型名称和堆栈跟踪,如果存在内部异常,则递归地对该内部异常执行相同操作。这可以更好地指出问题所在。如果您的问题已关闭(很可能会),请使用此信息更新它,并且如果它足够具体,您的问题可以重新打开。 我在帖子中添加了一些内容,希望能澄清一些事情。 【参考方案1】:首先,您需要找到ConnectString("CMPRepData")
的存储位置。这是包含您的数据库连接字符串的变量。
接下来,您需要更新此连接字符串以使用ACE OLEDB 12.0
驱动程序。
示例(来自ConnectionStrings.com)
Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\myFolder\myAccessFile.accdb;Persist Security Info=False;
【讨论】:
我想这是我最困惑的地方。我找到了一个 utils 文件,其中包含连接字符串 Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + databasePath + ".mdb" 我将其更改为 ACE...12... 它是唯一关联的文件与我可以在其中看到这一行的文档。我不知道下一步是什么,因为将此文件上传到我的网络服务器没有帮助。 最近有人告诉我,Microsoft ACE OLEDB 12.0 是 Microsoft 提供的 OLE DB Provider。提供程序包含在文件 ACEOLEDB.DLL 中。我在用于通过 Access 编译我们的数据库文件的计算机上找到了 ACEOLEDB.DLL 文件,但我不确定如何让所有内容都与更新版本一起使用。 @medrob 不幸的是,这里不一定适合教您如何在 Active Server Pages (ASP) 中编程。您的网络主机已经安装了适当的驱动程序。无需担心 DLL。但是,您确实需要找到正确的连接字符串在哪里,更新它,将文件上传到您的服务器并再次尝试该应用程序。 我不一定需要任何人教我 ASP 的东西,我只是想弄清楚为什么我的网络主机告诉我我的 ASP 页面和我的数据库文件需要一些东西而没有告诉我什么,或在哪里正确获取它。他们让我感到困惑,这让我感到沮丧,尤其是当一切都在几个月前在他们的旧平台服务上运行时。以上是关于需要帮助了解网站数据库问题的主要内容,如果未能解决你的问题,请参考以下文章