MicrosoftのCassini Webサーバーでの私の経験

1.カッシーニとは



Cassiniは、MS Windows用のシンプルで「軽量」なWebサーバーであり、ご想像のとおり、静的HTMLページおよびASP.NETアプリケーションへの要求を処理します。 執筆時点では、CassiniはVisual Studioの一部として配布されており、MicrosoftはVisual Studioの外部での使用と配布を推奨していません(ただし、禁止していません)。 Microsoftは、Visual Studio以外のCassiniの技術サポートを提供していません。 ただし、Microsoftが製品のパッケージにCassiniを含めた場合があります。たとえば、Microsoft CRMの初期バージョン(現在はMicrosoft Dynamics CRMとして知られています)。 2006年3月に、Microsoftはかなり自由なライセンスの下でCassini 2.1のソースコードをオープンしました。



この記事を書いている時点では、いくつかの代替Cassiniディストリビューションを見つけることができました。



さらに、Visual Studioで配布されているCassiniバージョンの正常な逆コンパイル(およびその後の32ビットおよび64ビットプラットフォームの正常なアセンブリ)に関する情報をネットワーク上で見つけることができます。



CassiniとIISの主な違いは次のとおりです。



プロジェクトの1つで作業する過程で、デモWebアプリケーションでCassiniを使用するオプションを検討しました。 このペーパーでは、Webで見つかったCassiniに関するさまざまな情報と個人的な経験を要約しようとします。



2.カッシーニを選ぶ理由 なぜカッシーニ?



私たちが取り組んでいたプロジェクトは、ユーザーのサーバーへのWebアプリケーションとWebサービスのインストールを暗示していました。 残念ながら、サーバー上のIISの存在を保証することはできませんでした(ユーザーはまったく異なります)ので、私はCassiniに目を向けなければなりませんでした。 上記の制限は気にしませんでした-それはデモアプリケーションのみに関するものでした。 この製品のインストールプログラムは、ユーザーのマシンにCassiniとWebアプリケーションをインストールし、インストール直後にlocalhost / SomeDemoApplicationにアクセスして製品を動作させることです



今後、すべてがうまくいったと言います。 しかし、道中、私はたくさんの熊手を手に入れました。



3. Cassisniを起動します



Visual Studio 2010のCassini実行可能ファイルを使用し、.NET 4.0でビルドしました。



Cassiniの実行は簡単でした。



WebDev.WebServer40.exe /port:8111 /path:"c:\Projects\My Web Application"







動作します: localhostアドレス:8111 / Home.aspxは、Webアプリケーションのホームページを表示します。



次に、GACにインストールされたWebDev.WebHost40.dllを使用して、製品インストールプログラムにCassini実行可能ファイルを含めました。 解決すべき問題は、ユーザーがデモアプリケーションページに移動する前にCassiniを起動することだけです。 シンプルなPortQryユーティリティを使用して、ポート8111でのCassiniのアクティビティを判断するスクリプトが作成されました。



portqry.exe -n localhost -e 8111

if ERRORLEVEL=1 goto nolisten

echo Cassini is already running

goto end

:nolisten

start WebDev.WebServer40.exe /port:8111 /path:"c:\Projects\My Web Application"

:end

start localhost:8111/Home.aspx









インストーラにスクリプトを追加し、[スタート]メニューにこのスクリプトのショートカットを追加するだけで、セットアップの準備は完了です。



4.問題



いつものように、いくつか質問がありました。



GACのWebDev.WebHost40.dll


実際、これには大きな問題はありませんが、疑問が残ります。なぜ一般にこのアセンブリをGACに入れるべきなのでしょうか? 私はカッシーニのソースを見なかったので、本当の理由はわかりません。 これが完全な信頼を得るための安価な方法である場合、次の質問は次のようになります。なぜ完全な信頼のおもちゃのWebサーバーが必要なのでしょうか。 一般的に、GACでWebDev.WebHost40.dllを使用する理由を誰かが明確に説明してくれれば、私は自分の製品でCassiniを使用することに自信を持ちます。



64ビットのサポート


執筆時点では、Visual StudioとCassiniは32ビットアプリケーションです。 Cassiniを使用して64ビットASP.NETアプリケーションをホストしようとすると、例外がスローされます。 次の2つのオプションがあります。ASP.NETアプリケーションを32ビットに再コンパイルするか、64ビットをサポートする代替のCassiniディストリビューションを使用してみてください(上記のリストを参照)。



仮想パスの問題


Visual Studioから提供されているCassiniには便利なオプション/ vpathがあり、アプリケーションの仮想フォルダー(仮想フォルダー)を指定できます。 しかし、Cassiniの開始時にこのオプションを使用して、 localhost :8111 / MyAppVirtualFolder / Home.aspxからアプリケーションを起動しようとすると、エラーが発生しました。 私が見つけた唯一の解決策は、昇格された特権で/ vpathオプションを使用してCassiniを起動し、仮想パスが機能することでした。 このオプションはテストに適していますが、商用製品にはほとんど適していません。 GACと同様に、このような奇妙な動作の説明を取得することは興味深いでしょう。



5.推奨事項



Cassiniが非常に役立つ場合がありますが、注意して使用する必要があります。 可能な限り多くの構成で最終ソリューションをテストし、Cassiniが本格的な商用製品ではないことを少し忘れないでください。 頑張って



All Articles