INCLUDE文でエラーが出ます これを回避するには?

[上に] [前に] [次に]
ぐりこ 1999/10/25(月) 09:10:48
おはようございます
ASP内で外部ファイルに作成したプロシージャー(db.inc)を読み込むため、
以下の記述をしていますがエラーが発生してしまいます。
何が間違っているのでしょうか?
<ASP内記述>
%>
<!--#INCLUDE VIRTUAL="/TESTWEB/COMMON/db.inc"-->
<%

<ERROR MESSAGE>
Microsoft VBScript 実行時エラー エラー '800a004c'
パスが見つかりません。
/SOUMU/COMMON/mail.inc, 行 149

ぐりこ 1999/10/25(月) 09:14:33
すみません
間違えてしまいました...(^^;ゞ
正しくは、こう記述してあります

<ASP内記述>
%>
<!--#INCLUDE VIRTUAL="/SOUMU/COMMON/mail.inc"-->
<%

ぐりこ 1999/10/25(月) 10:03:20
またまた...
やはりパス名記述足りなかったようです。このエラーは回避することが出来ました。
..が、今度は「ファイルが見つからない」と出ました。
属性の問題でしょうか?ちなみに現在、"読取専用"としてあります
(NTサーバー使用)
<ERROR MESSAGE>
Active Server Pages エラー 'ASP 0126'
インクルード ファイルが見つかりません
/soumu/M_TaskM_1.asp, 行 21
インクルード ファイル '/wwwroot/SOUMU/COMMON/mail.inc' が見つかりませんでした。

hiro-kim 1999/10/25(月) 11:57:21
#include virtual は Webサーバ上での仮想ディレクトリの指定ですから,
\wwwroot というOS上での物理ディレクトリは表示しないと思いますけれど。

>またまた...やはりパス名記述足りなかったようです。

って,最新の状態では #include はどう指定しているのですか。

念のために,Webサーバ上でもOS上でも,両方とも読取アクセス権を許可しているという点については大丈夫ですね。

ぐりこ 1999/10/25(月) 13:31:04
>って,最新の状態では #include はどう指定しているのですか。
あぅ...ごめんなさい。この時点では
<!--#INCLUDE VIRTUAL="/wwwroot/SOUMU/COMMON/db.inc"-->
としてありましたが、「仮想ディレクトリ指定」ということで、
<!--#INCLUDE VIRTUAL="/SOUMU/COMMON/db.inc"-->
が正しいのですよね...
でもそうすると、「パスが見つかりません」エラーが出ちゃうんですよね
あああxx

ちなみに自社サーバーの為、権限はフルアクセスとなっています。

とこやん 1999/10/25(月) 14:14:26
ぐりこさん、こんにちわ。

パスが見つかりません、ってことですが、
ファイルの指定を相対パスにして、VIRTUALをFILEに変更してみるとか?

ぐりこ 1999/10/25(月) 14:30:12
実はFILEでもお試し済みなんです...
こんな感じでやってみたんですが、やっぱりエラーが出るんです。(絶対パスでもお試し済み)
<!--#INCLUDE FILE="./COMMON/db.inc"-->
(呼び出し元のASPは"/SOUMU"フォルダにある)

ちなみにNTサーバーを使用しているのですが、それって何か関係ありますか?

hiro-kim 1999/10/25(月) 15:30:42
>NTサーバーを使用しているのですが、それって何か関係ありますか?

こちら,NT 4.0 Server + IIS 4.0 にて,同じディレクトリ構造を作成して動作確認しています。正常に include されています。

>権限はフルアクセスとなっています。

この表現が気になるのですけれど。
「Everyone フルコントロール」というのはNTFSでのアクセス権限であって,Webサーバ上ではそういう選択肢はありません。それを承知した上で「フルアクセス」とおっしゃっているのですね。

IIS の version はいくつですか。
incファイルの位置がサブディレクトリ下でなければ正常に include されることをすでに確かめていますか。
WebブラウザのURL入力欄で http://サーバ名/soumu/common/db.inc と直接入力したなら,db.inc の内容がちゃんと表示されますか。

ぐりこ 1999/10/25(月) 15:54:47
>「Everyone フルコントロール」というのはNTFSでのアクセス権限であって,Webサーバ上ではそういう選択肢はありませ
>ん。それを承知した上で「フルアクセス」とおっしゃっているのですね。
...いいえ。承知していません。
すみません、ではWebサーバー上での権限設定はどの様に行えば良いのでしょうか?
教えて下さい。

>IIS の version はいくつですか。
4.0です
>incファイルの位置がサブディレクトリ下でなければ正常に include されることをすでに確かめていますか。
ASPファイルと同階層に持ってきても同様にエラーが発生します。
<!--#INCLUDE FILE="./db.inc"-->

>WebブラウザのURL入力欄で http://サーバ名/soumu/common/db.inc と直接入力したなら,db.inc の内容がちゃんと
>表示されますか。
はい。但しファイルの内容が見れるのではなく「ファイルの保存」というのが出て来ています。

hiro-kim 1999/10/25(月) 16:05:26
IIS のインターネットサービスマネジャを起動して,

既定のWebサイト
  soumu
    common で右クリック → プロパティ

[読み取り] にチェックが付いているか。

ぐりこ 1999/10/25(月) 16:14:32
>[読み取り] にチェックが付いているか。
はい
ここは[読み取り]にしてあります

hiro-kim 1999/10/25(月) 18:33:39
さぁて,困りましたね……。
乗りかかった舟ですから,障害の切り分けからおつきあいします。

1.以下の1行だけを書いた SmpInclude.inc を作成して保存。
ぐりこ

  上記のファイルを保存した正確な物理パスは?
  (例.C:\Inetpub\wwwroot\soumu\common\SmpInclude.inc)

2.以下の3行だけを書いた SmpInclude.asp を作成して保存。
<html><body>
<!--#INCLUDE VIRTUAL="/SOUMU/COMMON/SmpInclude.inc"-->
</body></html>

  上記のファイルを保存した正確な物理パスは?
  (例.C:\Inetpub\wwwroot\soumu\SmpInclude.asp)

3.Webブラウザから上記のASPにアクセス。
  WebブラウザのURL入力欄に入力した正確なURLは?
  (例.http://localhost/soumu/SmpInclude.asp

4.Webブラウザに表示された正確なエラーメッセージは?
  (キーボードから再入力したりせず,表示文字列をそのまま貼りつける)

すなわち,
.aspの内容によるエラー(#includeとは関係ない,VBScript記述のミス)
.incの内容によるエラー(db.incからさらにincludeする記述箇所のミス)
ではなく,もっと根元的な問題であることを確定したいわけですね。

ぐりこ 1999/10/25(月) 18:49:03
うるる(;_;)泣けちゃいます
ありがとうございます hiro-kimさん

さてさて、エラーメッセージは以下の通りです
----->
Active Server Pages エラー 'ASP 0126'

インクルード ファイルが見つかりません

/soumu/smpinclude.asp, 行 2

インクルード ファイル '/SOUMU/COMMON/SmpInclude.inc' が見つかりませんでした。
<------

根本的問題..ですか  うーむxx

hiro-kim 1999/10/25(月) 19:04:43
1.エクスプローラにて C:\Inetpub\wwwroot\soumu\common\SmpInclude.inc を
  右クリック → プロパティにてアクセス権を確認。
  めんどうですが,そのアクセス権をすべてリストアップしてください。

2.IIS のインターネットサービスマネジャを起動して,(再確認です)

既定のWebサイト → soumu → common で右クリック → プロパティ
  [読み取り] にチェックが付いているか。

既定のWebサイト → soumu → common → SmpInclude.incで右クリック → プロパティ
  [読み取り] にチェックが付いているか。

ぐりこ 1999/10/25(月) 19:18:16
あ..すみません おろおろxxx
"SmpInclude.inc"が"SmpInclude..inc"になっており、これを修正したところ
"ぐりこ"と見事ブラウザに表示されました!!
ということは、db.inc内記述に誤りがある?!

でも一応...
1.SmpInclude.incのアクセス権は...
 Administrators フルコントロール(AII)
 Everyone    フルコントロール(AII)
 SYSTEM     フルコントロール(AII)
2.IISのインターネットサービスマネジャで...
 common:[読み取り]OKです
 SmpInclude.inc:[読み取り]OKです

hiro-kim 1999/10/25(月) 19:23:31
おぉ,光明が(笑)

SmpInclude.asp の2行目の末尾の SmpInclude.inc を db.inc に変更したら,
Webブラウザに表示されるエラーメッセージはどうなります。

これはもうチャットですね。

ぐりこ 1999/10/25(月) 19:30:44
あ..すみません おろおろxxx
"SmpInclude.inc"が"SmpInclude..inc"になっており、これを修正したところ
"ぐりこ"と見事ブラウザに表示されました!!
ということは、db.inc内記述に誤りがある?!

でも一応...
1.SmpInclude.incのアクセス権は...
 Administrators フルコントロール(AII)
 Everyone    フルコントロール(AII)
 SYSTEM     フルコントロール(AII)
2.IISのインターネットサービスマネジャで...
 common:[読み取り]OKです
 SmpInclude.inc:[読み取り]OKです

ぐりこ 1999/10/25(月) 19:43:35
あぁxx興奮のあまり再送信しちゃいました...
えーと、エラーは何も出ませんでした。まっ白けけ
URLで直接入力すると表示されるのに..?
これはやっぱり INCLUDEファイルの中身が悪いのでしょうか?はて

hiro-kim 1999/10/25(月) 19:55:31
http://……/db.inc で直接指定すると,ファイル内の文字列をそのまま表示,
.asp から呼び出した場合は,読み込んだ db.inc 内のHTMLタグ・ASPタグを解釈しますから,そういう状態になることもあると思います。
  エラー表示されずに include されてしまったらしい
のが 問題? でしょう。

元々の /soumu/M_TaskM_1.asp 内のすべての #include 行のスペルが正しいかどうか確認の後,
SmpInclude.asp の代わりに M_TaskM_1.asp を呼び出したらどうなりますか。

hiro-kim 1999/10/25(月) 19:58:46
http://……/db.inc で直接指定すると,ファイル内の文字列をそのまま表示,
.asp から呼び出した場合は,読み込んだ db.inc 内のHTMLタグ・ASPタグを解釈しますから,そういう状態になることもあると思います。
  エラー表示されずに include されてしまったらしい
のが 問題? でしょう。

元々の /soumu/M_TaskM_1.asp 内のすべての #include 行のスペルが正しいかどうか確認の後,
SmpInclude.asp の代わりに M_TaskM_1.asp を呼び出したらどうなりますか。

ぐりこ 1999/10/25(月) 20:29:49
>元々の /soumu/M_TaskM_1.asp 内のすべての #include 行のスペルが正しいかどうか確認の後,
>SmpInclude.asp の代わりに M_TaskM_1.asp を呼び出したらどうなりますか。
「パスが見つかりません」xxx
試しに"M_TaskM_1.asp"内で "SmpInclude.inc"を呼び出したところ上手く読み込んでいます。
同じASP内で"SmpInclude.inc"は読み込めるのに、"db.inc"は出来ない?
"dB.inc"の記述が変だとこういう現象が出るのでしょうか?

hiro-kim 1999/10/25(月) 20:47:53
正確なエラーメッセージが知りたいですね。

SmpInclude".."incというファイル名指定ミスの場合は「インクルードファイルが見つかりません」,
今度は「パスが見つかりません」ですよね。
エラーの性質に違いがあるのです。

「パスが見つかりません」は,VBScriptにおける呼び出しや,仮想ディレクトリがリモートサーバにあるときのエラーメッセージだったと思います。今回は,仮想ディレクトリがローカルにあるのですから,前者があやしいのではないでしょうか。

hiro-kim 1999/10/25(月) 21:17:08
タイムアップ。
私は明日,休業日なので,今日中に解決できるかなと半日おつきあいしてみたのですけれど,時間切れです。これで帰宅します。

……冷静になって発端の3発言に目を通してみると,M_TaskM_1.asp も db.inc もカンケーなく,ただ mail.inc が存在しないだけのような気が……す……る。

人間なんてララーラーララララーラー

ぐりこへろへろ 1999/10/25(月) 21:22:23
[[解決]]
きゃぁーxx hiro-kimさん INCLUDE成功しました!!

原因はどうやら"db.inc"ファイルの中の記述に誤りがあったから(ぐぅ...ごめんなさい)
「パスが見つからない」と言っていたのは"db.inc"内であるフォルダにTextファイルを作る
ように記述していたのですが、そこへのパスが見当たらないよ!と言っていたことが判明
致しました。
朝早くから夜遅くまで、今日一日タイヘンお世話になりました。ありがとうございました。
そして、本当にゴメンナサイxxx深く謝罪

[上に] [前に] [次に]