- PR -

ASP.NETのWEBアプリの更新について

1
投稿者投稿内容
RV
会議室デビュー日: 2005/09/21
投稿数: 4
投稿日時: 2005-09-21 12:03
初めて投稿させて頂きます。

現在ASP.NETで作成したWEBアプリをWEBサーバ上に開発用と本番用の2つの環境に配置しています。
WEBサイトは別々で登録しています。80番ポートと82番ポート

アプリケーションの改造や改修を行なった際に、dllファイルや
aspxファイル等必要なファイルのコピーをした後に
毎回World Wide Web Publishing Serviceを再起動をさせていますが、
この方法だと、開発用の環境だけアプリの更新を行なっているのに
本番用の環境の使用をユーザーの人に停止してもらわなければなりません。

サービスを再起動させているのは、ファイルコピー後にそのままブラウザを立ち上げても
変更した部分が反映されていない事があるからです。

本番環境の使用を停止しないで、開発環境のみアプリを更新して使用できる方法は
ありませんでしょうか?

本を読んでみたり、インターネットでいろいろ検索してみましたが、
このあたりについて特に記述されている物がありませんでしたので、
投稿させていただきました。

宜しくお願い致します。<(_ _)>

Windows2000 Server
IIS 5.0
渋木宏明(ひどり)
ぬし
会議室デビュー日: 2004/01/14
投稿数: 1155
お住まい・勤務地: 東京
投稿日時: 2005-09-21 12:35
引用:

サービスを再起動させているのは、ファイルコピー後にそのままブラウザを立ち上げても
変更した部分が反映されていない事があるからです。



ブラウザや PROXY のキャッシュに旧コンテンツが残っているのではありませんか?

引用:

本番環境の使用を停止しないで、開発環境のみアプリを更新して使用できる方法は
ありませんでしょうか?



Webアプリケーションをリロードすればよいのではないでしょうか。

引用:

本を読んでみたり、インターネットでいろいろ検索してみましたが、
このあたりについて特に記述されている物がありませんでしたので、
投稿させていただきました。



IIS のヘルプに(不親切だとしても)記述があるはずです。
RV
会議室デビュー日: 2005/09/21
投稿数: 4
投稿日時: 2005-09-21 16:39
渋木宏明(ひどり)さん、早速のご回答ありがとうございます。

キャッシュをクリアして、やれば問題ありませんでした。

あと、私自信勘違いしてる部分がありました。
web.configに設定している内容を変更してましたが、
これは、Application_Startメソッドでしか読んでないので、
モジュール入替えても内容が変更されないのは当たり前ですよね。

web.configを変更した場合は、サービスの再起動しかありませんよね?
nodera
大ベテラン
会議室デビュー日: 2003/09/08
投稿数: 200
投稿日時: 2005-09-21 17:49
こんにちは。

基本的にdllを入れ替えたりWeb.configを書き換えたりすると、Webアプリケーションが再起動されるので、Application_Startも再実行されます。またセッションをInProcで利用しているとセッションの内容も同時に消えてしまいますのでモジュール入れ替えには注意が必要です(セッションを別プロセスやSQLServerに保持する方法により回避することもできます)。
.aspxや.thmlだけの入れ替えであれば、再起動は行われません。これらの違いを把握しながら慎重に入れ替え作業はする必要があります。

メンテナンスはあらかじめ予告しておいて、決まった時間(夜中とか)にするほうが、ユーザーに迷惑を掛けなくて良いかと思いますよ。

#修正
ワーカープロセス再起動と書いてしまいましたが、プロセスは再起動されなかったですね^^;

>本番環境の使用を停止しないで、開発環境のみアプリを更新して使用できる方法は
>ありませんでしょうか?
あ、本番環境と開発環境が同居していて開発環境のみを入れ替えるってことか。。
これも、上記理由によりサービス自体を再起動することは不要です。 

[ メッセージ編集済み 編集者: nodera 編集日時 2005-09-21 18:05 ]
RV
会議室デビュー日: 2005/09/21
投稿数: 4
投稿日時: 2005-09-21 18:13
noderaさん、ありがとうございます。

よく理解できました。
更に間違いがあることに気がつきました。
Web.configから更に別のファイルを読み込ませるよう設定しているのですが、
そのファイルを編集していた為、内容が更新されていませんでした。
Web.configを書き換えると内容が更新される事を確認できました。

これで、開発環境のみのアプリの更新も問題なくできそうです。
本番環境の入替えについては、メンテナンスの時間等をログインの画面で
表示をしたりして、極力その間は使われないようにしようと思います。

noderaさん、渋木宏明(ひどり)さんありがとうございました。<(_ _)>
Moo
大ベテラン
会議室デビュー日: 2004/04/12
投稿数: 118
お住まい・勤務地: 地球・港
投稿日時: 2005-09-22 10:49
もう解決しているようですが1つだけアドバイス。

Webアプリケーションを効率よく新しいバージョンに差し替える方法
として、「仮想フォルダの切り替え」を利用するのもいいかもしれません。

c:\www\systemA\1.0 というフォルダに
仮想ディレクトリが割り当てられていた場合、

新しいバージョンのファイル群をc:\www\systemA\1.1フォルダに格納して
仮想ディレクトリを切り替える手法です。

古いバージョンへのロールバックも仮想ディレクトリを元に戻すだけと
簡単なので実践してみてはどうでしょうか。

実際に私が使用しているTipsでした。
_________________
ASP/ASP.NETだいすき。 ASP++ by Moo http://moo-asp.net/
日記は ほぼ毎日更新中 http://d.hatena.ne.jp/aspx/
RV
会議室デビュー日: 2005/09/21
投稿数: 4
投稿日時: 2005-09-22 10:54
Mooさん、アドバイスありがとうございます。

そうですね。良い方法ですね!!
これから新しいバージョンを導入する際に
仮想ディレクトリを使用する事を検討したいと思います。

ありがとうございました。<(_ _)>
1

スキルアップ/キャリアアップ(JOB@IT)