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