web-dev-qa-db-ja.com

(IISの代わりにカッシーニを使用することのデメリットは何ですか?

デバッグ中にソースを編集できる場合がありますが、IISの仮想ディレクトリの代わりにVisual Studioの組み込みWebサーバーを使用する他の利点はありますか?

私は開発環境でwindows XPを使用しており、ローカルインスタンスIIS 5。すべての異なるサイトを管理します。

不利な点はありますか?

51
sebastiaan

Visual Studio用の組み込みWebサーバーはCassiniと呼ばれ、その制限のいくつかを次に示します...

  • ポートごとに1つのASP.NETアプリケーションのみをホストできます。
  • HTTPSはサポートしていません。
  • 認証はサポートしていません。
  • ローカルホストの要求にのみ応答します。
  • IISと比較して起動が遅い
58
pdavis

これまでのすべての回答は素晴らしい答えです。これは、カッシーニでの1つの落とし穴で、destkopでIISが必要になる可能性があります。

Cassiniは、IISユーザー(IUSR_、IWAM、またはWinXP x64ではw3wpプロセス)としてではなく、開発者のコ​​ンテキストで実行されます。これは、外部ファイルにアクセスしている、または一時ファイルを作成しているWebサイト。開発者がデスクトップの管理者として実行している場合に最も明白です。

サーバーIISに移動すると、カッシーニでアクセスできたはずの機能が同じように機能しません。通常、IIS_WPGを使用したCACLは修正に必要なすべてですが、開発者がこれについて考えていない場合、展開にすぐにかなり不満を感じるでしょう。

16

カッシーニは仮想ディレクトリをサポートしていません

9
John Sheehan

3番目のオプションが間もなく登場するようです: IIS Express

7
Glen Little

私が遭遇したもう1つの欠点は、カスタムIPrincipal/IIdentityを使用するForms認証済みWebサイトです。カッシーニは警告(または通知)なしにAppDomainsを切り替えます。

詳細については、これを確認してください ブログ投稿 これに関する頭痛の種により、カッシーニを削除し、IISを使い続けました。

5
Havagan

組み込みサーバーは、IISを構成するために開発者に自分のマシン上の管理者アクセスを許可したくない大企業に適しています。

5
Joel Coehoorn

Visual Studio Webサーバーは、パス内の//についてあまり寛容ではありません。

次のようなリンクの提供を拒否します:http://localhost:52632/main//images/logo.jpg where IIS。

これはかなりあいまいですが、すべての//オカレンスを取り除くために行うべき多くの修正があることを意味します。

5
Simon_Weaver

組み込みサーバーがHTTPModuleを処理する方法にバグがあります -あります 回避策 ですが、本番環境では必要とされないコードを入力する必要はありません。

4
Greg Hurlman
  • (通常の状況で)使用するには、VisualStudioを実行する必要があります

  • ローカルホストにのみ応答するため、リンクを指定することはできませんhttp://simon-laptop:37473/app1ネットワーク経由であなたのサイトを見るために友人に

  • 大きなデメリット:ローカルホストトラフィックがプロキシ経由で送信されないため、 fiddler を機能させるのが難しくなります。

編集:using http://ipv4.fiddler:37473は、Fiddlerを操作するための最良の方法です。

3
Simon_Weaver

組み込みのWebサーバー上にあるWebサービスのURLを「Web参照」すると、ポートが変更される可能性があります。 [プロジェクト]-> [プロパティ]オプションページに記載されている「特定のポート」を設定していない限り。

これは私が今慣れているものです。私はいつも特定のポートを設定します。これで、Webサーバーがクラッシュすることがある場合(私はそれが発生しました)、ポート番号を変更するだけで、すべて問題ありません。再起動するとこれも修正されると思います。

2
Vin

組み込みサーバーは、開発者がサイトをテストするためにIISを設定する方法を知る必要がないことを意味します。

これは不利であり、Windows開発者は少なくともそれだけのIISを知っている必要があると主張することができます。または、システム管理者ではない開発者がWebサーバーをいじってはいけないと主張することもできます。

2
Joel Coehoorn

カッシーニは、クラシックASPページもサポートしていません。これは、古いASPページがまだ存在する(稼働中のWebアプリのように)レガシープロジェクトの問題です。

2
Gilligan

仮想ディレクトリを使用することはできません:(

2
Toby Mills

3番目の方法の理由は次のとおりです。 WS Pro はおそらくカッシーニよりもIISに近いですが(カッシーニに触発され、UltiDevカッシーニフォークのベンダーからのものですが) 、その主な目的は、ASP.NETアプリケーションとともに 再配布可能 になることです。 enter image description here

1
VladH

私はよく両方の長所を生かしてIISでアプリケーションを作成し、組み込みのWebサーバーを使用してより効率的なデバッグを行います。

1
Simon_Weaver

UACが有効になっているVistaまたはWindows7でIISを使用する場合、管理者権限でVisual Studioを実行する必要があります。これを行うと、シェルからVisual Studioにドロップをドラッグできません( Explorer.exeのインスタンスを管理者として実行している場合でも)。

このため、私はほとんどのプロジェクトでCassiniを使用しています。

1
Chris

これは2年前に始まった古いスレッドです。グーグル中に tilDev Cassini に出くわしました。私には有望に見えます。少なくとも、複数のサイトを同時に実行する機能があります。私は2つの異なるサイトで作業しており、IISを使用してそれらを継続的に切り替える必要があるため、この機能は私にとって非常に便利です。

1

XP Homeを使用して自宅で趣味の仕事をしている場合、IISをローカルにインストールすることはできません。

1
Joel Coehoorn

組み込みサーバーは構成可能ではなく、奇数のポートで実行されるため、特定の動作を頼りにすると面倒になる可能性があります。

1
Joel Coehoorn

カッシーニは、軽量のテストWebサーバーになることを目指しています。開発者は、アプリケーションをテストするためにIISをインストールして構成する必要はありません。使い慣れていて、持っている場合は、IISを使用してください。セットアップすれば、ボックスでそれを処理できます。カッシーニは代替品ではありません。

1

参考までに、Windows XP 64ビットにはIIS 6が付属しています。

1
Richard Szalay

私が見つけた1つの違いは、開発サーバーがファイルのアップロードをIISとは異なる方法で処理することです。アップロードされるファイルがMax_File_Size設定よりも大きい場合、エラーをトラップすることはできません。ページだけ死んで500を返します。

0
user13810

IISAdminをインストールすると、仮想ディレクトリを使用する代わりに、IIS 5)に個別のサイトをセットアップできます。

0
FlySwat

また、IISを介して、ローカルホストURLに愚かなポート番号を自動的に記憶して設定することを心配する必要はありません。それはカッシーニで直接頼りにされたファンキーなものです...お尻の大きな痛み。いくつかのabritraryポート番号を覚えておきたい人。 IIS..plainとsimpleでいまいましいサイトを実行するだけです。

0
PositiveGuy

もう1つの欠点は、画像とスタイルシートのすべてのリクエストを含むgloabalasaxファイルを介してすべてのリクエストを送信することです。これは、ルックアップなどのファイル名を処理するコードがそこにある場合、補助ファイルも処理されることを意味します。

0
Daisy

組み込みのWebサーバーはIISよりも少し堅牢ではありませんが、セットアップが不要なため、トレードオフにすぎません。

開発プロジェクトをIISサーバー(ローカルのIISサーバーでも))で公開する必要はない場合があるため、組み込みサーバーが適しています。

ただし、アプリケーションがWebアプリの標準外のリソースにアクセスする場合は、IISで頻繁にデバッグして、アプリケーションが制限されたアクセス許可で実行され、場所を確認できるようにすることができます。課題はになります。

0
James

また、スクリプトを\ aspnet_clientフォルダーに配置するサードパーティのコントロールに関して、VS組み込みサーバーでいくつかの問題が発生しました。 IISで実行していないときはフォルダーがないため、コントロールは機能しませんでした。常にIISを使用して、奇妙な問題を回避する方がはるかに簡単なようです。

0
Doron Yaacoby