-
Anonymous
2024-09-14T13:10:31+00:00 <IMG src="/cgi-bin/AccessHtmUpd.bat?">の場合と、
<IMG src="AccessHtmUpd.bat">の場合の、
2通りで、クライアントのブラウザから、httpアクセスしてみましたが、
HTML5の<img>タグのsrc属性には、画像ファイルのパスを指定するのが一般的です。もし実行プログラムのパスを指定した場合、ブラウザはそのパスを画像として解釈しようとしますが、画像ファイルではないため、画像が表示されません。
どちらのフォルダ直下にも、「TraceMes.txt」は、出来ませんでした。
勿論、クライアントのブラウザには、起動画面は表示されました。
ほんとうにhttpクライアントでBATファイルの画面が見えたというのでしょうか?
CGIの出力(stdout)はブラウザが解釈しているHTMLソースにインラインで展開されます。普通のhttpサーバーであれば500(Internal Server Error)エラーになるでしょう。
実は、上の2通りのHTML文に、自信が無く、2通り試しているのですが、
どちらか、或いは、両方の記述に、誤りが有るのでしょうか?
その点が、良く理解出来ていません。
その辺のところ、何かお気付きの事でも有れば、
宜しければ、解説していただけますでしょうか?
CGIでインライン実行プログラムを実行するには<iframe>タグを使います。
例えばアクセスカウンターをCGIで実装するとこんな感じになります。
今日的な記述方法ならCGIも使いません。サーバー側、もしくはブラウザ上でスクリプトを実行する方が簡易であり可用性が確保できる記法にできるからです。
解説はオンラインドキュメントや書籍などを読まれることをお勧めします。
**モデレーター注**
こちらの返信で解決したということですね。
他のユーザーの皆様にも参考になるように、こちらの返信を回答としてマークいたしました。
もし、まだ問題が解決しないようでしたら、この回答マークを解除して返信にて質問を継続してください。
Copilot 様に聞いてみた方が早そうですね。
Copilot 回答を生成しています…
Copilot が送信しました:
IISでCGIプログラムとしてバッチを起動し、そのバッチからexeファイルを実行できない場合、いくつかの原因が考えられます。以下の点を確認してみてください:
- 権限の問題:
- IISのアプリケーションプールのユーザーアカウントに、バッチファイルやexeファイルを実行する権限があるか確認してください。デフォルトでは、アプリケーションプールのユーザーは制限された権限を持つことが多いです。
- パスの問題:
- バッチファイル内でexeファイルを呼び出す際に、フルパスを指定しているか確認してください。相対パスではなく、絶対パスを使用することをお勧めします。
- IISの設定:
- 環境変数:
- バッチファイルやexeファイルが依存する環境変数が正しく設定されているか確認してください。IISのアプリケーションプールの環境変数が、システム全体の環境変数と異なる場合があります。
- ログの確認:
- IISのログやWindowsのイベントビューアーを確認し、エラーメッセージや警告が出ていないか確認してください。これにより、具体的なエラーの原因を特定できる場合があります。
これらの点を確認しても問題が解決しない場合、具体的なエラーメッセージや設定内容を教えていただければ、さらに詳しくサポートできるかもしれません。