很长一段时间以来,我一直在新机器上设置我的第一个本地托管网站,老实说,我对现在配置的所有手动设置并不是很熟悉。我最后一次设置是在 Windows XP 机器上,当我启用 IIS 时它似乎“正常工作”。这次不是这样。
我最新的问题是连接到 MSAccess 数据库。我有一个非常基本的页面,其中包含一个输入的表单。我检查数据库以确保它尚未包含该值,如果没有,则将该值写入数据库。我收到以下错误:
Provider error '80004005'
Unspecified error
/trips/admin_add_hotel.asp, line 22
我在网上进行了研究,一切似乎都表明这是一个权限问题。但是,我可以删除代码的第二部分(写作),页面将返回正常。如果我尝试再次运行页面或刷新,我会收到错误消息。这对我来说说用户具有读取权限。现在,我可以稍等片刻,删除代码的第一部分,然后写入数据库,它会正常工作。同样,对我来说,这意味着用户具有写访问权限。但是,如果我尝试再次运行它......同样的错误。
这是 ASP 代码:
<!--#include file="includefile.asp"-->
<%
if Request("action") = "submit" then
'make sure hotel name is filled in
if Request("fhotel") <> "" then
fhotel = Request("fhotel")
'make sure hotel doesn't already exist in DB
sql = "SELECT hotel_id FROM hotels WHERE hotel_name = '" & Replace(fhotel, "'", "''") & "'"
RS.Open sql, ConnectString
if NOT RS.EOF then
Session("msg") = "Hotel already exists"
End if
RS.Close
'add hotel to DB
if Session("msg") = "" then
sql = "INSERT INTO hotels (hotel_name) VALUES ('" & Replace(fhotel, "'", "''") & "')"
Conn.Open ConnectString
Conn.Execute sql
Conn.Close
Session("msg") = "Hotel added successfully"
fhotel = ""
End if
Else
Session("msg") = "Hotel left blank"
End if
Set RS = Nothing
Set Conn = Nothing
End if
%>
我的包含文件是:
<%
ConnectString = "DSN=ConnectionDSN; Uid=username; Pwd=password"
Set RS = Server.CreateObject("ADODB.Recordset")
Set Conn = Server.CreateObject("ADODB.Connection")
%>
我的数据库有 1 个包含两列的表:
- hotel_id [AUTONUMBER]
- 酒店名称 [文本 (255)]
这是我的系统详细信息:
- Windows 7 Pro 64 位(尽管根据我在网上找到的内容已为 32 位设置了连接)
- IIS 7.5
只是为了确保这不是权限问题,我暂时允许“所有人”用户完全访问该文件夹。
任何帮助表示赞赏。我相信这是我必须完全启动和运行的最后一个障碍。
提前致谢。