久しぶりに新しいマシンでローカルにホストされた Web サイトをセットアップしていますが、正直なところ、現在構成されているすべての手動設定にあまり慣れていません。私の最後のセットアップは Windows XP ボックス上で行われ、IIS を有効にすると「正常に動作した」ように見えました。今回はそうではありません。
私の最新の問題は、MSAccess DB への接続に関するものです。1 つの入力を含むフォームを含む VERY BASIC ページがあります。DB をチェックして値がまだ含まれていないことを確認し、含まれていない場合は値を DB に書き込みます。次のエラーが表示されます。
Provider error '80004005'
Unspecified error
/trips/admin_add_hotel.asp, line 22
私はオンラインで調査しましたが、すべてが許可の問題であることを示しているようです。ただし、コードの 2 番目の部分 (書き込み) を削除すると、ページは問題なく返されます。ページを再度実行または更新しようとすると、エラーが発生します。これは、ユーザーが読み取りアクセス権を持っていることを示しています。ここで、少し待ってコードの最初の部分を削除し、DB に書き込むだけで問題なく動作します。繰り返しますが、ユーザーが書き込みアクセス権を持っていることを示しています。ただし、もう一度実行しようとすると...同じエラーが発生します。
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")
%>
私のDBには、2つの列を持つ1つのテーブルがあります:
- hotel_id [自動番号]
- ホテル名 [TEXT (255)]
ここに私のシステムの詳細があります:
- Windows 7 Pro 64 ビット (ただし、オンラインで見つけた情報に基づいて、接続は 32 ビット用にセットアップされています)
- IIS7.5
アクセス許可の問題ではないことを確認するために、「Everyone」ユーザーにそのフォルダーへのフル アクセスを一時的に許可しました。
どんな助けでも大歓迎です。これが、物事を完全に稼働させるための最後のハードルだと思います。
前もって感謝します。