我试图将旧站点移动到新服务器,但出现一个奇怪的错误 - 新服务器是带有 IIS7 的 Win2008 64 位。
该网站在 IIS6 Win2003 服务器上运行正常,但我刚刚将其移过来并运行该网站,但出现以下错误
Provider cannot be found. It may not be properly installed.
从周围看,人们似乎只是说在应用程序池中启用 32 位应用程序就可以了?不幸的是,我这样做了,但没有用?这里似乎失败了
'*************************************************************************
'Open Database Connection
'*************************************************************************
function openDB()
on error resume next
set connTemp = server.createobject("adodb.connection")
connTemp.Open connString
if err.number <> 0 then
dim errMsg
errMsg = "" _
& "<b>Module :</b> scripts/_INCappDBConn_.asp : openDB()<br /><br />" _
& "<b>Number :</b> " & err.number & "<br /><br />" _
& "<b>Page :</b> " & Request.ServerVariables("PATH_INFO") & "<br /><br />" _
& "<b>Desc :</b> " & err.Description
call errorDB("",errMsg)
end if
on error goto 0
if UCase(dbLocked) = "Y" then
call errorDB("<b>" & LangText("ErrStoreClosed","") & "</b>","")
closeDB()
end if
end function
只是想知道是否有人可以解释一下发生了什么?
答案1
我知道这是相当基础的 - 但你有没有先确保 IIS 中安装了 ASP?默认情况下,IIS7 上未安装经典 ASP。转到控制面板中的程序和功能,然后单击打开和关闭 Windows 功能。浏览功能树并确保已选中 ASP。
如果你还没有走这条路——这可能是问题所在。
答案2
我相信,当我说并非所有 Microsoft 应用程序和服务都能在 64 位模式下正常工作时,您会感到震惊……以防万一这可能是您环境中的一个因素,请查看是否有选项可以在 32 位模式下运行此数据库连接。例如,我在使用 VB .NET 脚本的 Visual Studio 项目中遇到了与您完全相同的错误,在将 VS 项目属性 Run64BitRuntime 更改为“False”(意味着以 32 位运行 =“True”)后。然后,神奇的是,错误消失了:)我知道您提到您更改了应用程序池中的设置,但错误可能在此之前,即在建立数据库连接的运行时发生。在 IIS 之外进行测试可能会确认或消除这个问题。
答案3
遇到了同样的问题。检查了所有标记,并根据 Marie Kelly 的回复执行以下操作:在 IIS7 中转到应用程序池,选择正确的应用程序池,单击高级设置并设置“启用 32 位应用程序”=>True。