none
ビルドしたファイル RRS feed

回答

  • > Webアプリケーションでは、ソースファイル→アセンブリ→機械語が実行時に一気に行われるのでしょうか。

    aspxの場合、このままコンパイルできるわけではないので、最初のアクセス時に
     aspx→ソースコードを自動生成→アセンブリ→機械語
    という手順がとられて実行されることになります。
    2度目のアクセスからは、アセンブリはすでに作成されているので、そこまでの手順は省略されます。
    また、アセンブリから機械語へのコンパイル(JITコンパイル)はメソッド毎に行われます。

    #メソッド毎のJITコンパイルはWindowsアプリケーションでも同じですね。

    > Webサーバの中を見ればソースファイルがテキストのままですぐに読めてしまうので、アセンブリにしてから配置するのかなと想像していました。

    Express以外のVS2005ではサーバ上への配置時にコンパイルを行ってアセンブリにすることが可能だったと思います。
    VWDの場合はツールにこの機能はくみこまれていませんが、aspnet_compiler.exeというコマンドライン上で実行できるツールをつかってアセンブリにすることができます。
    これを事前コンパイルといったりします。
    ASP.NET 2.0からできるようになった機能です。

     

    2006年3月14日 5:24

すべての返信

  • ASP.NET 2.0では基本的には最初のアクセス時に動的にコンパイル/実行されるので、ビルドをしてもコンパイルが行われるだけ、と考えておいていいと思います。

    正確にいうと、C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Filesフォルダ以下にビルドしたファイルはできてると思います。
    なぜこんなところに作成されるかはASP.NETの仕組みを勉強してみるとわかります。

    2006年3月14日 2:26
  • ありがとうございます。
    フォルダ名を見ると、Temporary という文字が入っていますね。visual studio で web サイトをビルドしても、ビルドでできあがったファイルは本番用のWebサーバではつかわれないのでしょうか。

    Default.aspx, Default.aspx.cs, web.config という3つのファイルがWebサイト名のフォルダの中にできています。これらのファイルをWebサイト名のフォルダごと、IISに転送すればよいのでしょうか。

    2006年3月14日 3:05
  • > visual studio で web サイトをビルドしても、ビルドでできあがったファイルは本番用のWebサーバではつかわれないのでしょうか。

    はい、使われません。

    > Default.aspx, Default.aspx.cs, web.config という3つのファイルがWebサイト名のフォルダの中にできています。これらのファイルをWebサイト名のフォルダごと、IISに転送すればよいのでしょうか。

    必要になるのは3つのファイルだけです。
    サイト名のフォルダは必ずしもIIS側につくる必要はありません。
    それよりも、IIS側ではルートフォルダに置く場合は別として、その下にフォルダを作成するような場合はそのフォルダをWebアプリケーションとして設定する必要があります。
    このあたり、IISの管理についてきちんと学ばれたほうがよいと思います。
    ASP.NETでWebアプリケーションをつくって運用していく上では絶対に必要となる知識ですから。

     

    2006年3月14日 4:04
  • 分かりやすく説明してくださってありがとうございます。
    今まで.NET framework 上で動くアプリケーションはアセンブリという形になって実行時に機械語になると思っていました。Windowsアプリケーションでは実際にそういうふうになっているようです。

    Webアプリケーションでは、ソースファイル→アセンブリ→機械語が実行時に一気に行われるのでしょうか。

    Webサーバの中を見ればソースファイルがテキストのままですぐに読めてしまうので、アセンブリにしてから配置するのかなと想像していました。

    2006年3月14日 4:45
  • > Webアプリケーションでは、ソースファイル→アセンブリ→機械語が実行時に一気に行われるのでしょうか。

    aspxの場合、このままコンパイルできるわけではないので、最初のアクセス時に
     aspx→ソースコードを自動生成→アセンブリ→機械語
    という手順がとられて実行されることになります。
    2度目のアクセスからは、アセンブリはすでに作成されているので、そこまでの手順は省略されます。
    また、アセンブリから機械語へのコンパイル(JITコンパイル)はメソッド毎に行われます。

    #メソッド毎のJITコンパイルはWindowsアプリケーションでも同じですね。

    > Webサーバの中を見ればソースファイルがテキストのままですぐに読めてしまうので、アセンブリにしてから配置するのかなと想像していました。

    Express以外のVS2005ではサーバ上への配置時にコンパイルを行ってアセンブリにすることが可能だったと思います。
    VWDの場合はツールにこの機能はくみこまれていませんが、aspnet_compiler.exeというコマンドライン上で実行できるツールをつかってアセンブリにすることができます。
    これを事前コンパイルといったりします。
    ASP.NET 2.0からできるようになった機能です。

     

    2006年3月14日 5:24
  • どっとねっとふぁんさん、Webアプリケーションを作っていても、アセンブリがすぐに見つからなかった訳がよくわかりました。aspnet_compiler.exe を使った事前コンパイルにも挑戦してみたいと思います。
    ほんとうにありがとうございました。

    2006年3月14日 6:52