アプリケーションと仮想ディレクトリの違い


11

私はasp.net開発者です。IISでアプリケーションと仮想ディレクトリを常に混同しています。iis6.0では、仮想ディレクトリしか作成できないようです。


1
IIS6では、仮想ディレクトリを作成し、それをアプリケーションに変換します。
Mark Henderson

回答:


13

これら2つは混同しやすく、多くの場合、用語は同じ意味で使用されます。

仮想ディレクトリは、ディスク上の別の場所へのポインタにすぎません。親フォルダーとは異なるディスク上の固定パスを指します。

アプリケーションは、異なるフォルダー間の境界です。ASP.NETはこれを使用して、新しいAppDomainルート(またはアプリケーションルート)を作成します。アプリケーションルートは、別のglobal.asax、binフォルダー、およびその他のapp_ [folders。]を使用します。

IIS6およびIIS7では、仮想ディレクトリを作成した場合、デフォルトではアプリケーションではありません。ASP.NETは、親フォルダーと同じAppDomainに配置します。

IIS6では、右クリックして[プロパティ]から[作成]を選択することで、仮想ディレクトリまたは通常のフォルダーをアプリケーションに変換できます。

IIS7では、オプションの名前は異なりますが、バックグラウンドでは同じです。仮想ディレクトリを作成すると、まだ親のAppDomainの一部であるvdirを作成できます(アプリケーションではありません)。

「アプリケーションの追加」オプションは、実際には仮想ディレクトリを作成し、それをアプリケーションとしてマークします。(パスを指定できることがわかります)。

既存のフォルダ(またはvdir)を右クリックして、アプリケーションに変換することもできます。これは、既存の通常のフォルダーまたは仮想フォルダーにアプリケーション境界を作成する方法です。


IIS 7の既定のWebサイトはMOSS 2007(SharePoint)を実行しています。ユーザーにポータルにいるような感覚を与えたいので、同様のブランドのASP.NET Webアプリケーションを作成し、同じサイトで仮想ディレクトリベースのアプリケーションとして設定しました。既定のWebサイトとこのASP.NETアプリケーションの両方が同じアプリケーションプールを使用しています。まず第一に、これは安全/良い習慣ですか?次に、ASP.NETアプリケーションでセッションを有効にして使用すると、SharePoint管理セッションの整合性/パフォーマンスが危険にさらされたり、他の方法でSharePointに影響を及ぼしたりしますか?
Webユーザー

@WebUser同じアプリプールに配置しても問題ありません。これらはアプリプール内の個別のアプリケーションであるため、セッション状態は互いに分離されます。ただし、とにかく別のアプリプールを使用することをお勧めします。1つで何かが失敗した場合、もう1つをリサイクルまたは修正するために両方を停止する必要はありません。また、NTFSアクセス許可をロックダウンして、それらを互いに分離する柔軟性が高まります。
スコットフォーサイス-MVP 2015年

@ ScottForsyth-MVP私はそれらを完全に分離してほしかったので、私はあなたの提案に耳を傾けました。新しいアプリケーションプールと新しいサービスアカウントを作成し、この記事を使用してIDを設定しました。理由はわかりませんがSystem.UnauthorizedAccessException、ページを表示するのにしばらく時間がかかると、アプリケーションがをスローします。アプリケーションはまだ機能していますが、速度が遅く、Visual Studioを開くように求める例外が発生します。私が欠けているものについての考えはありますか?
Webユーザー

@ ScottForsyth-MVP 私がServerFaultに投稿したこの質問をご覧ください。ありがとう!
Webユーザー

@WebUser。おそらく、カスタムIDをIIS_WPGグループに追加する必要があります。これはIIS6の要件でした。私もあなたの他の投稿に返信しました。
スコットフォーサイス

2

また、確認することもできます。ご存知ですか:IIS 7 / 7.5での仮想ディレクトリとアプリケーションの違い

編集済み:リンクが切れているため、サイトを引用します。

IIS 7 / 7.5では、仮想ディレクトリとアプリケーションを作成するオプションがあります。

仮想ディレクトリとは何ですか?

仮想ディレクトリは、ローカルの物理ディレクトリまたはリモートサーバー上のディレクトリにマップされるディレクトリです。仮想ディレクトリでは、そのコードが親プロセスと同じワーカープロセスで実行されます。Webサイトと仮想ディレクトリのアプリケーションプールは同じです。

Image05

アプリケーションとは何ですか?

アプリケーションは、別のアプリケーションプールでアプリケーションを実行するオプションがあることを除いて、仮想ディレクトリと同じです。

Image06

注:これは、上記のスクリーンショットがapplicationhost.configでどのように見えるかです。


0

仮想ディレクトリは、ローカルマシンまたはリモートサーバーのフォルダーを指しているだけ、または参照しているだけです。IISの既定のWebサイトの下に仮想ディレクトリを作成する場合。内部の問題によってデフォルトのWebサイトがクラッシュした場合、仮想ディレクトリにアクセスできないとします。

Add applicationは、プロトコルを介してコンテンツを配信したり、サービスを提供したりするファイルのグループにすぎません。アプリケーションはアプリケーションプールに属しています。何らかの問題によりデフォルトのWebサイトがクラッシュしたと仮定すると、アプリケーションプールに属するアプリケーションには影響しません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.