- - PR -
初歩的なASP.NETの質問です。
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2003-07-07 16:08
初めまして、VS.NET(ASP.NET)を始めたばかりのものです。
データベースにつないで、単純にDataGridでテーブルの中身を表示 してみたいだけなのですけど。 デバックで実行すると Page_loadで if not IsPostBack then OleDbDataAdapter1.Fill(DataSet11) DataGrid1.DataBind() end if としてあるOleDbDataAdapter1.Fill(DataSet11)でエラーを起こします。 エラーは ファイル 'C:\Inetpub\wwwroot\PROTEST\SRCENG.mdb' を開くことができませんでした。ほかのユーザーが排他的に開いているか、データを読み取る権限がありません。 となります。 OleDbDataAdapter1の接続チェックなどでは接続できます。 また、自宅のノートPCで実験すると同じコードで開きます。 どちらもLocalhostにおいています。 初歩的な問題と思いますけれども、丸4日悩んでいます。 いろいろ調べたのですけど、よくわかりません。 よろしくお願い致します。 |
|
投稿日時: 2003-07-07 16:23
makuraです。
失礼かとは思いますが、もしかしてSRCENG.mdbをAccessで開いたままということはないですよね? #丸4日も開きっぱなしということはないとは思いますけど・・・。 [ メッセージ編集済み 編集者: makura 編集日時 2003-07-07 16:25 ] |
|
投稿日時: 2003-07-07 16:33
ご返答ありがとうございます。
Accessで開いたままではありません。 他のPCから、localhostのフォルダにコピーはしてきました。 しかし、コピー後は開いておりませんし、PCを再起動して すぐにも試してみました。結果は同じです。 先ほど記し忘れましたが ファイルのセキュリティもフォルダ、ファイルとも、匿名アクセス にチェックがあります。 |
|
投稿日時: 2003-07-07 17:12
SRCENG.mdbファイルのアクセス権限が足りないんじゃないですかね?
aspnetアカウントに読み書きのアクセス権限を与えてみてはどうでしょう。 |
|
投稿日時: 2003-07-08 00:23
ご返答ありがとうございます。
aspnet側の権限も調べてみます。 明日、チェックしてみます。 |
|
投稿日時: 2003-07-08 10:42
試してみたことを報告致します。
mdbファイルを試しに共有ドキュメントにおいてから OleDbDataAdapterの接続からやり直して見たところ うまく開きました。 ほかの、フォルダはと思って、testフォルダをC:に作成 して、データを置き直して再度同様の操作で試したところ 元のエラーが発生しました。 そこで、testフォルダをネットワークでの共有にして かつ、「ネットワークユーザーによるファイルの変更を許可する」を チェックすると、うまく開きました。 とりあえず、実験では使えると思うものの、サーバーに置いて web上から使用するときは、大丈夫なのでしょうか。 今までのASPのように使えないと、あまりASP.NET導入した 価値を説明できなくなってしまいそうです。まだ、動かして 見ただけですけど、今後がやや不安です。 |
|
投稿日時: 2003-07-08 16:11
ASP.NETは通常aspnetというローカルアカウントの権限で動いているらしいです。
ですのでこのローカルアカウントでmdbファイルにアクセスできる必要があります。 mdbファイルのプロパティを開き、「セキュリティ」タブからaspnetアカウントに対して読み書きの権限を与えてあげるとよいかと思います。 もし実験環境がXPでしたらデフォルトでは「セキュリティ」タブが表示されてないかもしれません。 その場合はフォルダオプションの「表示」タブの詳細設定項目から「簡易ファイルの共有を使用する(推奨)」とあるチェックボックスからチェックをはずすと「セキュリティ」が表示されます。 外してましたらごめんなさい。 |
|
投稿日時: 2003-07-08 17:43
sodさん、ご返答ありがとうございます。
実験環境はXPです。早速セキュリティタブからaspnetアカウントに 読み書きの権限を与えました。ところ、フォルダを共有にしなくても すんなり開くことができました。 ありがとうございます。 |