IISでのWebサーバー、CGIプログラムとしてバッチ

Anonymous
2024-09-13T03:03:18+00:00

IISでのWebサーバーを立ち上げ、CGIプログラムとしてバッチを起動したいのですが、起動出来たようではあるのですが、そのバッチの中からexeが起動出来ません。何か間違えているとは思うのですが、解りません。どのような原因が考えられるでしょうか?

<モデレーター注>

ディスカッションとして投稿されましたが、内容から判断して「質問」に変換しました。

この質問は Windows / Windows 10 / 設定 に投稿されましたが、内容から判断してこちらのカテゴリに移動いたしました。

適切なカテゴリに投稿すると、返信や回答が得られやすくなり、同じ質問を持つ他のユーザーの参考にもなります。

ビジネス向け Windows | Windows Server | パフォーマンス | アプリケーション テクノロジと互換性

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません
質問作成者が受け入れた回答
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も使いません。サーバー側、もしくはブラウザ上でスクリプトを実行する方が簡易であり可用性が確保できる記法にできるからです。

解説はオンラインドキュメントや書籍などを読まれることをお勧めします。

**モデレーター注**

こちらの返信で解決したということですね。

他のユーザーの皆様にも参考になるように、こちらの返信を回答としてマークいたしました。

もし、まだ問題が解決しないようでしたら、この回答マークを解除して返信にて質問を継続してください。

この回答は役に立ちましたか?

0 件のコメント コメントはありません

7 件の追加の回答

並べ替え方法: 古い順
  1. Anonymous
    2024-09-13T07:24:57+00:00

    まずは IIS で CGI が正しく有効化されているか確認しましょう。

    公式:Adding ISAPI/CGI Restrictions <add> | Microsoft Learn

    Web 検索:iis cgi 有効化 - Google 検索

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  2. Anonymous
    2024-09-13T08:38:23+00:00

    返信ありがとうございます。

    ご指摘の通り、IISの「CGI」と「ISAPI/CGI」を、「true」にして更新しました。

    IISの「再起動」も、何度もしました。

    そして、また、「index.html」の中が、

    <IMG src="/cgi-bin/AccessHtmUpd.bat?">の場合と、

    <IMG src="AccessHtmUpd.bat">の場合の、

    2通りで試し、2つのフォルダを確認しましたが、

    「TraceMes.txt」は出来ていませんでした。

    ちなみに、このバッチ手動でサーバー側で実行すると、

    コマンド・プロンプトの画面が出て消えて(「pause」入れる前)、

    「AccessCount.htm」なるファイルを更新するようになっていますが、

    このタイムスタンプも、更新されていません。

    本日は、この辺で、諦めます。

    また、後日にでも、お気付きの点が有れば、

    ご連絡をください。

    本日は、本当に、有難うございました。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  3. Anonymous
    2024-09-14T19:31:08+00:00

    本当に丁寧な返信を、ありがとうございます。

    良く解りました。

    私も一時期「パール」を勉強しようと、

    解説本を買い込むところ迄はしたのですが、

    その内容が膨大で、とても読む迄には至らず、

    所謂「つん読」でした。

    今回の質問の真意は、

    仮想ディレクトリ直下の「/cgi-bin/count.cgi」に、

    制御が渡るなら、バッチファイルにも渡らないのか?

    と言う、素朴な疑問から、ネット上で調べたら、

    色々有るは、有るはで、ここに来て、

    質問させてもらった次第でした。

    「パール」にだけは、手を出したく無くて。

    それにしても、「マッピング・ハンドラー」には、「*.vbs」も

    使えそうな話題も出ており、うまい事、webサーバー側の、

    バッチファイルか、exeファイルに起動が掛けられて、かつ、

    クライアント側のブラウザに、エラーで無いレスポンスを返す記述が、

    有りそうな気がするのですが、、、。

    それと、「IFRAME」記述で「.jpg」ファイルを、うまく表示

    させる事は、以前、出来ていました。

    本当に、丁寧な返信を、ありがとうございました。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません