2016-10-11 22 views
6

Webサイトを手動で停止して起動することなく、ASP.NET(コア)アプリケーションをIIS 8上の実行中のサイトに公開できますか?IIS 8はASP.NETコアアプリケーションを使用中に公開します

Visual Studio 2015は、ファイルが使用中であるというエラーを表示し続けます。ネットワーク上のサーバーへのWeb Deployが最後に失敗し、ポート443でサーバー上で認証できないというエラーが発生するため、私はファイルシステムへの公開を使用しています。

IISにする必要はありませんアプリケーションプールをリサイクルしていますが、私は常にアプリケーションを停止し、公開して(約1分かかります)、再起動する必要がある場合、ユーザーにとってはそれほど良いものではありません。

別のオプションは、同じアプリケーションを実行している2つのWebサイトのようなものですが、これが自動化可能な場合のみです。それから、2のうち1つを置いて、これを更新し、それを置いて、2番目のものを置いて、これを更新して起動します。

第3のオプションは、ホットアップデートのようなものです。ここでは、オンになっている間だけアプリケーションを更新できます。

私のGoogle検索で私に良い情報が与えられなかったので、正しい方向(おそらくいくつかのブログ記事)で誰かを指摘できますか?

答えて

0

「同じアプリケーションを実行している2つのWebサイト」があります。同じアプリをホスティングする2つのWebサーバーを意味しますか?

すでに複数のWebサーバー(サーバーまたはWebファームのクラスタ)がある場合は、一部のサーバーをクラスタから取り出して更新するだけです。それが我々の更新をどのように押し出すかです。 Citrixのソフトウェアを使用してサーバーファームを管理しています。ロードバランシングも処理します。このタイプのソフトウェアではサーバーを監視できるので、すべてのユーザーが(最近クラスタから外した)Webサーバーから「移動」した時点を判断できます。その後、iisreset、新しいビルドのデプロイ、次のサーバー(または構成に応じて一連のサーバー)に進むことができます。私たちは20以上の仮想Webサーバーを持っています。通常は、前半をクラスタ/ファームに戻すときに、サーバーの半分をダウンして更新し、残りの半分を削除します。これにより、中断のないサービスが可能になります。私はプロセスを自動化したいと思っています。 Windows NLB(ネットワーク負荷分散)を使用していると仮定します。 PowerShellスクリプトを書いて、サーバーを自動的に停止させることができます。参照先は次のとおりです。 https://technet.microsoft.com/en-us/library/ee817138

これは回避策として考えられます。私は、ASP.NETコアでアプリケーションプールをリサイクルすることが常に必要かどうかはわかりません。私は決定的な答えを見つけることができませんでした。とにかく、ほとんどのプロダクションアプリケーションは複数のWebサーバー上になければなりません。多くのユーザーがいない場合でも、フェールオーバーの目的で複数のWebサーバーを用意する必要があります。

1

app_offline.htmという名前のファイルをアプリケーションフォルダにコピーすると、IISによってアプリケーションが正常に停止し、app_offline.htmファイルの内容の処理が開始されます。アプリケーションが停止すると、ファイルをコピーできます。ファイルがコピーされた後、app_offline.htmファイルを削除すると、IISがアプリケーションを起動します。 AzureにデプロイするときはVSが、ファイルシステムにデプロイするときはVSを使用しません。

関連する問題