- ベストアンサー
Web上からExeを実行する場合に、IIS内にファイルを作成できない。
環境はWindowsServer2000のIISを使っていまして、IIS上のフォルダにExeファイルを置いています。 そのExeファイルをASPファイルから実行しているのですが、Exeファイルにログ出力用のファイル作成が入っているのですが、Server上で実行するとファイルが作成されるのですが、Web上から実行するとファイルが作成できません。 Exeファイルはメールの送信処理が入っているのですが、Web上で実行した場合メールが送信されるので性格にExeを実行できています。 おそらく、権限がない為にファイルの作成ができていないのだと思って、IISの該当フォルダ(書き込み先フォルダ)のプロパティで書き込みにチェックを入れてみたのですが、やはり作成できません。 ASP側実行部分 Set WSH = Server.CreateObject("Wscript.Shell") WSH.Run(Server.MapPath"./mail/mailsend.exe"),0,False) Exeファイル ・メール送信(Web上の実行でメールの送信確認) ・送信ログ(ファイルが作成されない) どなたか、教えてくださいー。 他に権限を変えるところがあるんでしょうか・・ それとも他に原因がー? 小さなことでもいいので教えてください!
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
EXEを直にたときの Directory.GetCurrentDirectory() の値は? スクリプトで実行したときの Directory.GetCurrentDirectory() の値は?
その他の回答 (3)
- todo36
- ベストアンサー率58% (728/1234)
> Exeファイルにログ出力用のファイル作成が入っているのですが、 フォルダを指定していますか? カレントフォルダとEXEが格納されているフォルダが 同じとは限らない。
補足
フォルダの指定はしています。 Directory.GetCurrentDirectory() にてディレクトリを取得して実行しています。 スクリプトからではなく、EXEを直にたたけば ファイルの作成はされるのですが、スクリプトでたたくと作成されないのです><
- ex_hmmt
- ベストアンサー率48% (726/1485)
とりあえず、テストとしてユーザを一つ新しく作成し、そのユーザを匿名アクセスに使うユーザとして設定して、フォルダに対してアクセス権を明示的に「そのユーザに対して」与えてみてはどうでしょう? 最初はフルコントロールから与えて、目的の事が実行できるぎりぎりのアクセス権まで絞っていくような形で。 ちょっとそれでうまくいくかどうかわかりませんが、試してみる価値はあると思います。
お礼
ありがとうございます。 アクセス権の問題ではなかったようです。 勘違いでした。
- ex_hmmt
- ベストアンサー率48% (726/1485)
もう一度確認させてください。 ・IISの匿名アクセスに使っているユーザは何ですか? ・そのユーザのフォルダに対する権限は確認したんですよね?
補足
レスありがとうございます。 ・IISの匿名アクセスに使っているユーザは何ですか? IUSR_PC01です。 コンピュータの管理でフルネームを見るとインターネットゲストアカウントとなっています。 ・そのユーザのフォルダに対する権限は確認したんですよね? IISの規定のWebサイトの書き込みフォルダのプロパティの書き込みにチェックが入っています。 エキスプローラにて、書き込みフォルダのプロパティのセキュリティタブは”Everyone"でフルコントロールになっています。 これでだいじょうぶでしょうか?
お礼
ありがとうございました! Web上からExeを呼び出した場合のDirectory.GetCurrentDirectoryと、Exe直では、戻り値が違うようです。 パスを直接指定したら書き込めました。ありがとうございました。