質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
VBScript

VBScript(Visual Basic Scripting Edition)はMicrosftが開発したスクリプト言語であり、Visual Basicのサブセットです。

ASP

ASP(Active Server Pages) あるいはClassic ASP (ASP Classic)は、マイクロソフト社開発した動的なウェブページ製作に利用可能なサーバー側のスプリクトエンジンです。

Q&A

解決済

1回答

1754閲覧

ASP VBScriptでファイル出力ができない

TakoRice

総合スコア11

VBScript

VBScript(Visual Basic Scripting Edition)はMicrosftが開発したスクリプト言語であり、Visual Basicのサブセットです。

ASP

ASP(Active Server Pages) あるいはClassic ASP (ASP Classic)は、マイクロソフト社開発した動的なウェブページ製作に利用可能なサーバー側のスプリクトエンジンです。

0グッド

0クリップ

投稿2023/01/14 07:15

前提

ローカル環境でWebアプリケーション開発をしています
サーバーサイドをASP(VBS)、フロントサイドをHTML、JavaScriptで構成しています
サーバーサイドでログ出力を行おうと思っていますが、そこでエラーが発生しています
WebサーバーはIISを使用しており、ASPはクラシックASPです
(たまたま参考にしたサイトがクラシックASPを使用していたため)

実現したいこと

このアプリケーションはまだ本格的に実装はしておらず、仮に色々疎通を確認しています
その中でフロントサイドとサーバーサイドの連携を確認したく、
デバッグ用にサーバーサイドで設定、取得したデータをログに出力したいです

発生している問題・エラーメッセージ

console

1POST http://localhost/~/test.asp 500 (Internal Server Error)

server.log

12023-01-14 06:36:34 ::1 POST /~/test.asp |53|800a0046|書き込みできません。 80 - ::1 Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/109.0.0.0+Safari/537.36 http://localhost/~/index.html 500 0 0 7

該当のソースコード

test.asp

1<%@ LANGUAGE="VBScript" %> 2<% 3 4 Dim req 5 6 req = Request.Form("Request") 7 Call writeFile(req) 8 'エラー出てるか一目でわかるように返却しています 9 Response.Write req 10 11 Sub writeFile(text) 12 13 Dim fso 14 Dim f 15 16 ' ファイルシステムオブジェクトの作成 17 Set fso = CreateObject("Scripting.FileSystemObject") 18 19 ' テキストファイルのオープン(追記モード) 20 Set f = fso.OpenTextFile("C:\inetpub\~\test.log", 8, True) 21 22 ' テキストファイルに書き込み 23 f.WriteLine(text) 24 25 f.Close 26 Set fso = Nothing 27 28 End Sub 29 30 %>

試したこと

ファイル出力の個所以外はうまく動いていることは確認済みです
また、ファイル出力個所はVBSで挙動確認済みです
関数の引数にリテラル値を指定してもエラーは発生しているため、
リクエストデータが悪いことはないです

IISの権限の設定が何かしら足りてないのだと思ってますが、
何が足りないのかわかりません

補足情報(FW/ツールのバージョンなど)

ログ出力フォルダにはIIS_IUSRSにフルコントロールを与えています
各ソースやログファイルは文字コードSJISにしています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2023/01/14 07:22 編集

> (たまたま参考にしたサイトがクラシックASPを使用していたため) そういう理由だけであればクラシック ASP ではなく ASP.NET に変更しませんか? ASP.NET でさえニッチなのにクラシック ASP ではさらに輪をかけてニッチで、参考にできる情報やこういう場所でのサポートがほとんど期待できないので。
TakoRice

2023/01/14 07:43

そうですね、少しでもいいものを使用したほうがいいですよね。 余談ですが、開発環境のPCではインターネット接続が行えず、 インストールやダウンロードもセキュリティ上できない(厳しすぎ)ため、 ASP.NET Coreやその他もっといいサーバーサイド言語を選択できません できる範囲で最大限のいい開発を行おうと思います、ご提案ありがとうございます。
guest

回答1

0

自己解決

asp.netに移行する前にクラシックaspでの本件の事象が解決したので、
以下に対応方法だけ記載しておきます。

原因はやはりIISの権限が足りていないからでした。
以下のサイトが参考になりました。
https://nanoris.livedoor.blog/archives/51776573.html

簡単に説明すると、出力先のフォルダに「IUSR」の書き込み権限の設定がないためでした。
ASP.NETの場合は「IIS_IUSRS」の書き込み権限も必要なようですが、
クラシックASPの場合は「IUSR」のみで稼働しました。
私が権限設定していたのは「IIS_IUSRS」だったため動かなかったようです。
紛らわしいですが、解決できてよかったです。
すっきりしました。

投稿2023/01/14 08:40

TakoRice

総合スコア11

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問