出来るのだASP Q&A掲示板(過去LOG)  訪問数 52046 昨日 889 今日 776
    【PR】 パソコン入門からIT専門書まで幅広く取り揃えています。セブン-イレブン受取り手数料無料のセブンアンドワイ。
Topに戻る 掲示板に戻る 検索 削除 管理者

ファイルへの書き込みエラーについて   adeosさん [2002/09/18 10:13:44] [2663]
  追記   adeosさん [2002/09/18 10:18:50] [2664]
  Re:ファイルへの書き込みエラーについて   北岳さん [2002/09/18 10:55:23] [2665]
    Re:ファイルへの書き込みエラーについて   adeosさん [2002/09/18 11:15:51] [2666]
      Re:ファイルへの書き込みエラーについて   くっくさん [2002/09/18 11:37:30] [2667]
        アクセス権の問題でした(解決)   adeosさん [2002/09/18 12:02:06] [2668]

[2663] ファイルへの書き込みエラーについて
投稿者:adeosさん 2002/09/18 10:13:44
お世話になっています。
簡単なカウンターのプログラムを動かそうとしたのですが、カウンタ数を保存しているファイルに書き込みが出来ずにエラーが発生します。
(プログラムはとあるサイト様のものをそのまま流用しています)
原因など思い当たればご助言いただければ、と思います。

以下のソースなのですが、ファイルの読込は上手く行っているのですが、「Set OutStream」の行で「書き込みできません」というエラーが出ます。

----ソース(ここから)
<%
filename = Server.MapPath("count.dat")
''ファイルのアクセスをできるようにする
Set FileObject = Server.CreateObject("Scripting.FileSystemObject")
''ファイルをオープンする(読込)
Set InStream= FileObject.OpenTextFile (filename, 1, False, False)

count = Instream.Readline
Set Instream = Nothing

count = count + 1

Set OutStream = FileObject.CreateTextFile (filename, True, False)

OutStream.WriteLine count
Set OutStream = Nothing
%>
-----ソース(ここまで)

[2664] 追記
投稿者:adeosさん 2002/09/18 10:18:50
追記ですが、環境は

OS:WinXP
IIS5.1

です。

[2665] Re:ファイルへの書き込みエラーについて
投稿者:北岳さん 2002/09/18 10:55:23
(1) OpenTextFileで開きっ放しのファイルと同名のファイルを
CreateTextFile してもできるはずはありませんので、
Set Instream = Nothing (これだけではファイルは開いたまま。)
の1行上に、
Instream.close
を置き、
 
(2) 閉じてすぐ開こうとしても、閉じきっていない可能性もありますので、
Set Instream = Nothing
の1行下に
set basp=Server.CreateObject("basp21")
basp.sleep 1
を書いて、ぢつと1秒待ってから書込みに移るのではどうでしょう。
 
(3)あと、1行目直下に
response.write filename
を書いて、絶対パスが正しく表記されていることを確認。

[2666] Re:ファイルへの書き込みエラーについて
投稿者:adeosさん 2002/09/18 11:15:51
回答ありがとうございました。

(1) Instream.close を置く
これだけでは書き込みエラーになりました。

ので、
(2) set basp=Server.CreateObject("basp21")
  basp.sleep 1
この二行を付け加えましたが、結果は同様でした。

(3)response.write filename
絶対パスについては問題ありませんでした。
読込みの部分については問題ないようです。
filenameで指定されたファイルの中身が表示されました。

せっかく返信いただいたのにすみません…。
引き続き私も考えてみます。

[2667] Re:ファイルへの書き込みエラーについて
投稿者:くっくさん 2002/09/18 11:37:30
ソースを確認する以前にアクセス権はきちんとあるのでしょうか?
この場合は書き込み権ですが。

[2668] アクセス権の問題でした(解決)
投稿者:adeosさん 2002/09/18 12:02:06
回答ありがとうございます。
くっくさんのおっしゃるとおり、アクセス権の問題でした。

count.datの
[プロパティ]->[セキュリティ]
で、ユーザを追加すればいいんだ!とは思っていたのですが、何を追加して良いかわからずに少々困りました。
結論としては、「インターネットゲストアカウント」というものを追加すれば良かったようです。
追加の仕方は、[追加]をクリックして、「選択するオブジェクト名を入力」という枠に

IUSR_コンピュータ名

を記述して[OK]です。
ユーザが追加されるので、書き込み権を与えました。

色々とご面倒をおかけしました。
ありがとうございました。



TreeBBS For ASP V.0.1.3
Program By YasNet