デバッグ中にソースを編集できる場合があることがわかりました。IIS の仮想ディレクトリの代わりに Visual Studio の組み込み Web サーバーを使用する利点は他にありますか?
開発環境で Windows XP を使用し、IIS 5 のローカル インスタンスを使用しています。複数のプロジェクトに取り組んでいるため、複数の仮想ディレクトリを使用してすべての異なるサイトを管理しています。
デメリットはありますか?
デバッグ中にソースを編集できる場合があることがわかりました。IIS の仮想ディレクトリの代わりに Visual Studio の組み込み Web サーバーを使用する利点は他にありますか?
開発環境で Windows XP を使用し、IIS 5 のローカル インスタンスを使用しています。複数のプロジェクトに取り組んでいるため、複数の仮想ディレクトリを使用してすべての異なるサイトを管理しています。
デメリットはありますか?
Visual Studio の組み込み Web サーバーは Cassini と呼ばれ、その制限のいくつかを以下に示します...
以前の回答はすべて素晴らしい回答です。デスクトップで IIS が必要になる可能性がある Cassini に関する 1 つの落とし穴があります。
Cassini は、IIS ユーザー (IUSR_、IWAM、または WinXP x64 では w3wp プロセス) としてではなく、開発者のコンテキストで実行されます。外部ファイルにアクセスしたり、一時ファイルを作成したりする Web サイトがある場合、これは少し面倒です。これは、開発者がデスクトップの管理者として実行している場合に最も顕著です。
サーバー IIS に移動すると、Cassini でアクセスできたはずのものが同じように機能しなくなります。通常、IIS_WPG で CACL を実行するだけで修正できますが、開発者がこれについて考えていない場合、展開にすぐに不満を感じるでしょう。
Cassini は仮想ディレクトリをサポートしていません。
3 番目のオプションが間もなく登場するようです。
私が遭遇したもう 1 つの欠点は、カスタムIPrincipal
/を使用して Forms 認証された Web サイトにありIIdentity
ます。Cassini は、AppDomains
警告 (または予告なし) を切り替えます。
詳細については、このブログ投稿を確認してください。これに関する頭痛の種で、私は Cassini をやめて IIS に固執しました。
ビルトイン サーバーは、IIS を構成するために自分のマシンで管理者アクセス権を開発者に与えたくない大企業に適しています。
Visual Studio の Web サーバーは//
、パスに関してあまり寛容ではありません。
http://localhost:52632/main//images/logo.jpg
IIS が行うようなリンクの提供を拒否し
ます。
//
それはかなりあいまいですが、すべての発生を取り除くために多くの修正を行う必要があることを意味します.
ビルトイン サーバーが HTTPModules を処理する方法にバグがあります-回避策がありますが、本番環境では決して必要とされないコードを入れなければならないのは嫌です。
それを使用するには、Visual Studio を実行する必要があります (通常の状況では)。
http://simon-laptop:37473/app1
localhost にのみ応答するため、リンクを友人に渡して、ネットワーク経由でサイトを表示することはできません。
大きな欠点:ローカルホストのトラフィックがプロキシ経由で送信されないため、フィドラーを機能させるのが難しくなります。
Fiddlerを使用するhttp://ipv4.fiddler:37473
には、使用するのが最善の方法です。
仮想ディレクトリを使用することはできません:(
組み込み Web サーバー上にある Web サービスの URL を「Web 参照」すると、ポートが変更される場合があります。メニューのプロジェクト→プロパティオプションページで言及されている「特定のポート」を設定していない限り。
これは私が今慣れているものです。私は常に特定のポートを設定します。ときどき Web サーバーがクラッシュすることがありますが (私はそのようなことがありました)、ポート番号を変更するだけで問題ありません。これも再起動すれば治ると思います。
サーバーが組み込まれているということは、開発者が IIS をセットアップしてサイトをテストする方法を知る必要がないことを意味します。
これは欠点であり、Windows 開発者は少なくとも IIS について十分に理解している必要があると主張することができます。または、システム管理者ではない開発者が Web サーバーをいじってはいけないと主張することもできます。
Cassini は、 ASP Classicページもサポートしていません。これは、古い ASP Classic ページがまだ存在するレガシー プロジェクト (作業中の Web アプリケーションなど) のみの問題です。
参考までに、WindowsXP64ビットにはIIS6が付属しています。
3番目の方法の理由は次のとおりです。UWSProはおそらくカッシーニよりもIISに近いですが(カッシーニに触発され、UltiDevカッシーニフォークのベンダーからのものです)、その主な目的はASP.NETアプリケーションと一緒
に再配布可能にすることです。
私はよく、両方の長所を生かして IIS でアプリケーションを作成し、組み込みの Web サーバーを使用してより効率的なデバッグを行います。
Cassini は、軽量のテスト Web サーバーを意図しています。これは、開発者が自分のアプリケーションをテストするために IIS をインストールして構成する必要がないという考え方です。
IIS に精通しており、セットアップが完了していて、ボックスで処理できる場合は、IIS を使用してください。カッシーニは代替品ではありません。
これは2年前に始まった古いスレッドです。グーグル検索中にUtilDev Cassiniを見つけました。私には有望に見えます。少なくとも、複数のサイトを同時に実行する機能があります。私は 2 つの異なるサイトで作業しており、IIS を使用してそれらを継続的に切り替える必要があるため、この機能は私にとって非常に便利です。
XP Home を使用して自宅で趣味の仕事をしている場合、IIS をローカルにインストールすることはできません。
組み込みサーバーは構成可能ではなく、奇妙なポートで実行されるため、特定の動作を期待している場合は面倒になる可能性があります.
UAC が有効になっている Vista または Windows 7 で IIS を使用する場合は、Visual Studio を管理者権限で実行する必要があります。これを行うと、ドロップをシェルから Visual Studio にドラッグできなくなります (explorer.exe のインスタンスを管理者として実行しても)。
このため、私はほとんどのプロジェクトで Cassini を使用しています。
また、IIS を使用すると、ローカルホストの URL に愚かなポート番号を自動的に記憶して設定することを心配する必要はありません。それはカッシーニに直接依存したファンキーなものです... お尻の大きな痛み. なんらかのポート番号を覚えておきたい人。いまいましいサイトを IIS で実行するだけです。プレーンでシンプルです。
もう 1 つの欠点は、イメージとスタイルシートのすべての要求を含むグローバル asax ファイルを介してすべての要求を送信することです。これは、ルックアップなど、ファイル名を処理するコードがそこにある場合、補助ファイルも処理されることを意味します。
\aspnet_client
また、スクリプトをフォルダーに配置する一部のサードパーティ コントロールに関して、Visual Studio ビルトイン サーバーに関するいくつかの問題も確認されています。
IIS で実行していないときはフォルダーが存在しないため、コントロールが機能しませんでした。常に IIS を使用して奇妙な問題を回避する方がはるかに簡単に思えます。
IISAdmin をインストールすると、仮想ディレクトリを使用する代わりに、IIS 5 で個別のサイトをセットアップできます。
組み込みの Web サーバーは、IIS よりも堅牢性がやや劣りますが、セットアップが不要なため、トレードオフにすぎません。
開発プロジェクトを常に IIS サーバー (ローカル IIS サーバーでさえも) に公開したくない場合があるため、ビルトイン サーバーが適しています。
ただし、アプリケーションが Web アプリの標準外のリソースにアクセスする場合は、IIS で頻繁にデバッグして、アプリが制限されたアクセス許可で実行され、問題点がどこにあるかを確認できるようにすることができます。
私が見つけた違いの 1 つは、開発サーバーがファイルのアップロードを IIS とは異なる方法で処理することです。アップロードするファイルが Max_File_Size 設定よりも大きい場合、エラーをトラップできません。ページは死んで 500 を返します。