Part 3. ASP.NET 2.0 Web アプリケーションの 64 ビット対応

さて、前回のエントリではコンソールアプリケーションやライブラリアプリケーションの 64 ビット対応について解説しましたが、ASP.NET Web アプリケーションでは、一般に実行時コンパイルが行われるため、動作がちょっと複雑になります。これについて、以下に解説したいと思います。 なお、本エントリの解説は、すべて ASP.NET Web サイトプロジェクトによる Web アプリケーションを前提とします。VS2005 SP1 以降で導入された ASP.NET Web アプリケーションプロジェクトの場合には、一部のコードが先行コンパイルされる形になるため、本エントリの解説内容よりももう少し複雑になります。が、本エントリの内容と前回のエントリの内容を正しく理解すれば、スイッチの付与の仕方はわかると思いますので、このエントリでは Web アプリケーションプロジェクトについては解説対象外としたいと思います。 では、以下の順に解説していくことにします。 64 ビット/32 ビット動作の決定メカニズム Web サイトプロジェクトを含むソリューションのビルド構成設定 IIS 6 のワーカプロセスの動作ビットモードの変更方法 IIS 7 のワーカプロセスの動作ビットモードの変更方法 64 ビットワーカプロセスの制限事項 開発環境において 64 ビットワーカプロセスを使いたい場合について [Step. 11] ASP.NET Web アプリケーションの動作ビットの決定メカニズム まず、結論から記述すると、ASP.NET Web アプリケーションが64 ビット/32 ビットのどちらで動作するのかは、Web サーバのワーカプロセスの動作モードによって決定されます。 *.aspx ファイルや *.asmx ファイルは実行時に .dll ファイルにコンパイルされますが、これらのファイルはすべて Any CPU としてコンパイルされます。このため、この…

6

Part 2. .NET Framework 2.0 アプリケーションの 64 ビット対応

では引き続き、Part 2. のエントリでは、.NET Framework 2.0 のアプリケーションがどのようにして 64 ビット(または 32 ビット)で動作するのか、についてみていくことにします。.NET Framework では、IL (中間言語)と呼ばれるものが利用されているため、x86, x64, IA64 すべてに対応する .exe ファイルや .dll ファイルを作成することができます。にもかかわらず、Visual Studio を開くと、 ……と、こんなスイッチがあるわけなのですが、いったいこれは何なのか? これを理解するためには、.NET Framework のコンパイル動作を正しく把握する必要があります。これについて以下の手順で解説していくことにします。 IL コードとネイティブコード コンソールアプリケーションにおけるコンパイルスイッチの意味 ライブラリアプリケーションにおけるコンパイルスイッチの意味  [Step 7. IL コードとネイティブコード] .NET Framework の開発言語である C# や VB で書いたコードは、コンパイルしてもすぐに x86 や x64 などの命令コード(ネイティブコード)には変換されません。 .NET のアプリケーションコードはまずコンパイル時に MSIL (Microsoft Intermediate Language)と呼ばれる中間言語コードに変換されます。 そして実行時に CLR ランタイムがこれをネイティブコード(x86 や…

6

Part 1. 64 ビット Windows OS の基本知識

さて、現在のデスクトップ向けの Intel 系主流 CPU は Core2 Duo や Core2 Quad ですが、こうした現在の主流の CPU はほぼすべてが 64 ビット CPU になっています。64 ビット CPU 自体の歴史は長く、2003 年頃から CPU が、そして 2005 年頃から OS も 64 ビット版が出荷されていました。対応する CPU やデバイスドライバの問題などから(少なくともコンシューマユースでは)なかなか普及が進まなかったのですが、さすがに現在にもなると、OS はもとよりデバイスドライバも 64 ビット版のものが非常に入手しやすくなっており、いよいよ 64 ビット環境が使いやすくなってきました。 また、アプリケーション開発環境でも .NET Framework 2.0 が 64 ビット対応を行ったことで、64 ビットネイティブアプリケーションの開発というものが容易になってきました。とはいえ、.NET Framework は中間言語(IL)と呼ばれる仕組みを使うため、64 ビット対応の仕掛けはやや複雑です。そこで最初のエントリでは、64 ビット Windows OS の基本知識として、以下のようなポイントをまとめておきたいと思います。 x86, x64, IA64 の違い…

4

.NET Framework アプリケーションの 64bit 対応

さて、次は何のネタを書こうかなぁと迷っていたのですが、そういえばこの blog を書いている自分のマシンは Windows Vista の 64bit 版。Lenovo ThinkPad X60 (Core2Duo)のマシンに 64bit 版 Vista を入れているのですが、64bit OS はまだ使われたことがない、という方も多いんじゃないでしょうか? 私もなんだかんだと理由をつけて(笑)、なかなか 32bit 環境から移行してこなかったのですが、さすがに仕事でも 64bit OS を使う機会が増えてきたり、あるいはいくつかのアプリケーションは 64bit 版しか提供されない、といった形になってくると、64bit OS を食わず嫌いで通すわけにもいかなくなってきました。 一年ほど前に .NET Framework の 64 ビット対応とは何なのか、ということを調べようと思ったところ、意外にきれいに情報がまとまっているものが少なくて苦戦したので、エンジニアとして知っておくべき 64bit OS の基本をまとめたいと思います。 なお、.NET Framework アプリケーションの 64ビット対応を考える上では、そもそも 64 ビット OS  とは何か、という点を理解することが重要です。このため、このエントリではまず OS 一般の話、そしてそのあとに .NET Framework の話、と 2 段階に分けて解説したいと思います。 ■ Part 1. 64…

0