質問: asmxファイルを実行するにはASP.NETが必要ですか? IISを起動して、WebService(.asmx)のファイルのメソッドに引数を渡して実行したところ 「ページが見つかりません」となりました。↓
回答: まず、関連質問 での回答から読んで下さい。 [背景(及びWebサービス)] MS-DOS時代の終わり頃では、マイクロソフトは、インターネットを自社に不利益な存在として拒絶していました。 しかし、Windows時代(Windows95以降当たり)になってからは、考えを変えて、Windowsのインターネットエクスプローラーを搭載するなど、インターネット仕様を受け入れました。 また、その後にはWeb開発環境として、ASPも用意されました。 ところで、マイクロソフトには、プログラムを部品化する技術であるCOMがあります(ActiveXやATL等が、COMによる部品化技術です)。 マイクロソフトは、そのCOMをインターネット上で動作するように対応させたかったのですが、相性が悪く無理でした。 そのため、マイクロソフトのWeb開発環境では、それを批判する人も多くいました。 インターネットは、本来、標準仕様化して、多くの人に利用可能にするのが、大きな目的であるはずなのに、マイクロソフトの独自仕様が目立っていたからです。 そこで、マイクロソフトは、インターネット仕様でのXMLという技術に目を付けました。 XMLは、データをインターネット上でやり取りするのに便利な技術仕様です。 しかし、データだけではなく、プログラムも適用可能です。 よって、XMLを基本にして、プログラム部品をインターネット上に乗せる規格を、標準化団体W3Cのもとで、マイクロソフトを含めた各種企業で取り決めました。 そのような仕様のプロトコルが、SOAPです。 また、そのような規格で作ったプログラムを、Webによるサーバーとして、インターネット上で公開する技術仕様が「Webサービス」です。 [CLI] ここで、マイクロソフト開発環境としては、新たなライブラリを追加するレベルではなく、C++の言語仕様自体に手を加える必要がありました。 そこで、「どうせ、言語仕様に手を加えるのならば、いっそうのこと、新たな新言語を作ってしまえ」という背景で誕生したのがC♯です。 C/C++は、インターネット関係が不得意な言語ですが、インターネット時代に対応可能なC系言語として、C♯が誕生しました。 C♯は、標準化団体ECMAに認可されましたが、CLIという仕様も共に提出され、認可されています。 CLIは、日本語的には共通言語基盤で、言語に依存しない開発環境および実行環境を提供するものです。 すなわち、「C♯に限らず、どの言語でも、SOAPやWebサービス等の標準規格を受け入れる言語ならば、コンパイル後のプログラムの規格を共通化しましょう」というものです。 こうすれば、異なる言語間でも、仲介するインターフェイスを必要としないで直接に、互いに自由にリンク(結合)することも可能です。 [マイクロソフトの標準仕様] ここまでは、標準仕様の範囲での説明です。 CLIの規格に従ったマイクロソフトでのライブラリを、マイクロソフト開発環境でも用意されました。 それが、.NET Frameworkです。 C♯は、もちろん、CLI等の規格に従っています。 また、前述した言語仕様に手を加えたC++は、C++マネージ拡張と言います。 これは、言語仕様としては標準では無いですが、それで作成されたプログラムについては、CLI等の標準規格に従っています。 VBも同様に、VB.NETに変貌しました。 なお、C++マネージ拡張については、その後改良されて、C++/CLIという言語としてECMAに認可されました。 [ASMX] このことから、マイクロソフトのASPチームは、ASP自体をC♯で作り直しました。 それがASP.NETです。 また、ASP.NETを用いて、前述のWebサービスを作れる環境がASMXです。 [誤解の根源] ちなみに、Webサービスを作れるのは、ASP.NET(ASMX)だけではありません。 VB.NETやVC♯やC++/CLIでも、Webサービスを作れます。 こういう事をいきなり言ったら混乱するだけですが、今までの長々となった説明で分かると思います。 どの言語でも共通するフレームワークが用意されたのですから。 ちなみに、以前は、DLLやサーバーの作成は、VC++の役目でしたが、今はVB.NETでも十分可能です。 また、C++/CLIでは、VBなみに、ユーザーインターフェイス関係のプログラミングが簡単になりました。 各言語での固有な特徴は、今でも存在しますが、共通化された面も多いという事です。 [必要な物] このことから、質問での必要な物とは、.NET Frameworkです。 また、質問にあるようなコードのプログラミングには、ASP.NETが必要です。 [ASMX以後の技術] ASMXは、現在も通用する現役技術ですが、ただし、.NET登場当初のWebサービスやSOAP仕様関係しか使えません。 その後の技術は、もう回答量上限なので、興味がある場合は、再質問して下さい。