NTFSジャンクションをWebルートとして持つIIS 7サイトの潜在的な欠点は何ですか?


13

私は、できるだけサイトへの影響を少なくしてASP.NETコードを展開する方法を考えています。1つの考えは、NTFSジャンクションから提供されるサイトをセットアップすることでしたc:\www\example.com

c:\www\example.com -> c:\www\example.com_r1234

次に、新しいコードがデプロイされるc:\www\site.com_r1235と、コードがコピーされ、ジャンクションがリターゲットされます

c:\www\example.com -> c:\www\example.com_r1235

私の質問は、これがIISの現在のリクエストにどのような影響を与える可能性があるのですか?変更に対するIISの反応(ある場合)の観点から、これには他にどのような欠点がありますか?これは、サイトのエンドユーザーにとって、私が望むほどシームレスになりますか?

(コマンドラインを使用してサイトのWebルートを変更することを検討しましたが、不必要なアプリドメインまたはアプリプールのチャーンが発生する可能性があるため、IISを再構成するという考えは本当に好きではありませんが、あまり知りません負荷がかかっている状態でサイトの構成済みの物理パスが変更された場合の動作)

明確にするために、ここでの唯一の懸念は、エンドユーザーの経験です。私の目的は、彼らの邪魔を避けることであり、私にとっての利便性ではありません。


1
Webルートをリセットします。リサイクル(そうは思わない)とアプリプールの再起動は、a)おそらく「不要」ではなく、b)ワーカープロセスがコンテンツとキャッシュの状態に関する現実的なアイデアを維持するのに役立ちます。確かに賢い解決策ですが、賢いことはめったに安定を意味しません。大多数の人々が何をしているかを調べてから、それを行います。
-TristanK

それは素晴らしい質問です。私は長い間その答えを探していました。私が今まで見たのは、ロードバランサーの下でのローリング展開(私は持っていません)またはwebrootへのファイルの単純なコピー/ svn(私は好きではありません)のいずれかです。
jayrdub

1
そのため、最初にWebルートをリターゲットしてみてください。
-TristanK

回答:


3

サイトへの影響を可能な限り少なくしてASP.NETコードを展開する方法。

この目的と提案されたソリューションは整合していないようです。これは、すべての展開に関連する余分な作業やスクリプトが大量にあるためです。

私が見たことの1つは、svnクライアントを運用サーバーにインストールすることです。運用サイトは、ソース管理ツリーの特定の場所/ブランチのチェックアウトされたコピーです。この方法では、少なくとも、新しい展開用に変更されたファイルを更新するだけです。


このネットワーク操作により、サイトのアーティファクトがあいまいな状態になりすぎます。それは私が避けようとしている正確な状況です。webrootの下のアセンブリが異なるバージョンである時間を排除しようとしています。
jayrdub

1
「余分な作業と関連するスクリプト」は問題ではなく、完全に自動化されています
-jayrdub

私は公平であると思う、妨害と必要な仕事は実際には同じものではない
マーク・ヘンダーソン

私のサイトのエンドユーザーの邪魔は私が言及しているものです
-jayrdub

2

というWebルートの後ろにフォルダーを作成しました _images

C:\DEV\_IMAGES

その後、多数のgifファイルをその中にコピーしました。次に、ルートにNTFSシンボリックリンクを作成しました。

C:\DEV\PROJECT\ROOT mklink /D webimages ..\_images

Visual Studio 2010では、「すべてのファイルを表示」を更新し、新しい「webimages」をプロジェクトに含めます。私は今を指すことができます...

img src='webimages/icon.gif'

アプリを実行すると、ローカルマシンでも問題なく動作します。

インフラストラクチャがこれを処理するまで、実サーバー(IIS 7)で機能するかどうかはわかりませんが、実稼働環境で機能しない理由に関する問題は誰にもわかりませんか?

権利がある限り、そうすべきだと思います。もしそうなら、Webアプリ間で(すべてのタイプの)フォルダーを共有するのを簡単にする素晴らしい方法です。

まだTFSでこれを表現しようとしていないので、これについてのフィードバックがある場合はお知らせください!


0

IISはweb.configが別のプログラムによって変更されたと考える可能性があるため、これは機能しません。IISはおそらくSystem.Configuration.ConfigurationErrorsException例外をスローします。サイトのホームディレクトリを変更するだけのスクリプトを書くことをお勧めします。

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