• ベストアンサー

C#でCGIを動かす方法

C#でCGIを作成できるとの話を聞いたことあるのですが、方法が良く分かりません。。。 C#でのアプリ作成経験はあるものの、CGIは作成したことがないので・・・; C#ならばASP.NETの方が良いと思われますが、C#で作成したCGIを動かすには、ASP.NETと同じ環境が必要なのでしょうか?(サーバーで) 一般的な「CGI・PHP可能」とあるサーバーで動かすことができるのでしょうか? できたら、サンプルソースも書いていただいてくれたらとてもうれしいです。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • zxcv0000
  • ベストアンサー率56% (111/196)
回答No.4

> C#でCGIを作成できるとの話を聞いたことあるのですが、 できるかできないかはサーバーによって決まるので、使えるサーバーを探すのが先決かと。 レンタルサーバーの範疇で探すのであれば... ・「C# でCGI可能」と書かれてりゃOKでしょう、きっと。 ・「C/C++ でCGI可能」なサーバーも、場合によっては OKかも知れません。 ・ 上記以外の場合、Perl, PHP, Ruby の様な、「コンパイルせずに実行可能」な言語しか CGI可能リストに書かれてないサーバーは絶望です。 サーバーが見付かって、あなたが HTML を手書きできる人なら、ゴールは近いかも知れませんね。 HTML手書きできない場合は、C# にどんなライブラリがあるかに依存で、私には判らないです。

noname#120928
質問者

お礼

遅くなって申し訳ありません。 ありがとうございました。

その他の回答 (3)

  • root139
  • ベストアンサー率60% (488/809)
回答No.3

CGIとは、Webサーバからブログラムを呼出す仕組みですので、WebサーバがC#で作られたプログラムを起動できることが必要です。 http://e-words.jp/w/CGI.html 今のところ、C#の処理系はCLIベースのものだけのようですので、サーバにCLIの実行環境が有り、Webサーバがそれを使えるように設定されている必要が有るかと。 http://ja.wikipedia.org/wiki/%E5%85%B1%E9%80%9A%E8%A8%80%E8%AA%9E%E5%9F%BA%E7%9B%A4 > 一般的な「CGI・PHP可能」とあるサーバーで動かすことができるのでしょうか? 一般的な共用のレンタルサーバは、Linux/FreeBSDのものが多いと思いますが、MONO等のCLI実行環境が使えるものは、まず無いかと思われます。 ユーザ側でアプリケーションのインストールやWebサーバの設定ができるサーバでしたら、処理系をインストールしたり、起動用のシェルスクリプト等を作ったりすれば、できるかも知れません。 http://www.atmarkit.co.jp/fdotnet/special/mono10_01/mono10_01_01.html

回答No.2

STDOUTに出力するコンソールアプリでいけます。 一般的に使われるLinuxサーバーで動かすにはLinuxで動くアプリケーションを作らないと行けないため、 Linux用クロスコンパイラ、またはLinuxで動くC#コンパイラが必要です。 Windowsサーバーなら.exeか.comで作って、 http://localhost/test.exe にアクセスすれば実行できます。 (拡張子.exeをCGIとして動作させるための設定が別途必要) > 一般的な「CGI・PHP可能」とあるサーバーで動かすことができるのでしょうか? 使用可能言語を確認して下さい。 @NiftyではPerl、PHPのみ許可していますが(Rubyもだったかもしれない)、Cなどのコンパイル型言語で作成したアプリケーションは許可していません。 あらかじめLinux用にコンパイルしておけば利用できるところもあります。

参考URL:
http://winofsql.jp/VA003334/infoboard.php?mid=PROc&id=070618004724&pid=7
noname#140925
noname#140925
回答No.1

一般的な「CGI・PHP可能」とあるサーバーでは動かせません。 大前提として、WindowsServerである必要がありますが、普通はインターネットのサーバにWindowsServerは使わないので、一般的にサービスされているレンタルサーバ等では使えないと思ってください。 自宅Windowsサーバでも立てない限りは使えないでしょうね。 月額気にしないのなら、C#使える環境でサービス提供している所もあるでしょうけど。