MDB データベースはハードディスク上の単なるファイルであるため、他のファイルと同じファイル アクセス許可の問題が発生します。質問の意味は、データベース ファイルを読み取る (およびこの本の後半で説明するように書き込む) ためには、ページ内で実行されているアプリケーションが、Windows での読み取り (および書き込み) に関連するアクセス許可を持っている必要があるということです。ファイル。
これまでの例のページが「正常に機能する」理由は、VWD Web サーバー (VWD を実行しているユーザーの ID で実行される軽量プログラム) を使用しているためです。つまり、VWD Web サーバーが実行されており、ページ接続の MDB ファイルの読み取りと書き込みが許可されています。
ただし、IIS でページを実行する場合、状況は少し複雑になります。この時点で、ASP.NET ページは、特定のアクセス許可制限のあるユーザー アカウントの ID で実行されます。 IIS 5.1 では、このアカウントは「ASPNET」です。 IIS 6.0 以降では、このアカウントは「ネットワーク サービス」であり、IIS_WPG (「ワーカー プロセス グループ」) という Windows ユーザー グループに属します。 IIS で Access データベースを使用するには、これらのアカウントに読み取り権限が付与され、必要に応じて、MDB ファイルを含むディレクトリへの書き込み権限が付与される必要があります。
これらのアクセス許可の作成を支援するために、VWD は追加の手順を実行し、データベースがアプリケーション ルート ディレクトリの App_Data サブディレクトリにある場合に、このアクセス許可を ASPNET またはネットワーク サービス アカウントに自動的に付与します。 VWD を使用してマシン上でページを開発している場合、この特定のディレクトリには常に正しいアクセス許可が付与されます。 App_Data ディレクトリには、ディレクトリ内のファイルが要求元の Web ブラウザに応答しないようにするなど、追加の利点もあります。これは、MDB ファイルをアプリケーションのローカル App_Data ディレクトリに配置することで、アプリケーションのクライアントによってこれらのファイルが誤ってまたは意図的にダウンロードされるのを防ぐことができることを意味します。したがって、MDB ファイルを App_Data ディレクトリに保存することを強くお勧めします。
MDB ファイルを別の場所に保存する必要がある場合、またはデータベース ディレクトリのアクセス許可を手動で指定する必要がある場合 (たとえば、リモート Web サーバーで作業している場合)、Windows を使用して ASP.NET やネットワークのアクセス許可を構成できます。サービスアカウント。
権限を手動で設定する必要がある場合は、次の手順に従ってください。
(1) Windows エクスプローラーを使用して、MDB ファイルが配置されているフォルダーを参照します。
(2) ディレクトリを右クリックし、「プロパティ」を選択します。
(3) 「セキュリティ」タブを選択し、「追加」ボタンをクリックします。
(4) ローカル ASP.NET アカウント (IIS 5.1) または IIS_WPG グループ (IIS 6) を追加します。
(5) [OK] をクリックして、このディレクトリに関連する権限を適用します。
詳細については、ASP.NET Web サイトhttp://www.asp.net/faq/AspNetAndIIS6.aspxから入手可能なホワイト ペーパー「ASP.NET 1.1 および IIS 6.0 の実行」を参照してください。