2009-02-23 19 views
6

ASP.NET MVCアプリケーションをWebホスティング会社(DiscountASP.netなど)にデプロイしたいと思います。私はWebサーバーのweb.configファイルに何が必要かについて混乱しています。プロジェクトをローカルで作成すると、あらゆる種類の追加モジュール、ハンドラ、コンパイラを備えた膨大なweb.configが得られます。これらの項目をすべてプロダクションweb.configファイルに追加する必要はありますか?ASP.NET MVCアプリケーションをIIS7にデプロイし、クリーンなweb.configを保持

私はまだIIS6に私の現在のASP.NETアプリケーション(MVCではない)を配備しています。私はいつも手作業でプロダクション環境用のweb.configを作り、それを残りのアプリケーションファイルと共にアップロードしました。 IIS7のように思えますが、Webサーバー上のIISマネージャーを使用してweb.configを構築することになります。プロダクションサーバー上でweb.configを構築/管理する最善の方法は何ですか?

答えて

6

これまでのところ、私はMVCアプリケーションをDiscountASP.netに配備しようとしています。

最初は、私が見つけたと思う、私はそれがGACにインストールされていないようSystem.Web.Mvcがビンに配備されたことを確認していたということでした。

http://haacked.com/archive/2008/11/03/bin-deploy-aspnetmvc.aspx

をその後、私はスーパーで開始データベース接続文字列を含む基本的なweb.config。私のアプリケーションは動作しませんでした。

その後、私は、サーバーへの私の地元のweb.configアップだ混乱をコピーして、データベース接続文字列を変更し、物事が仕事を始めたが、私はまだエラーメッセージが出ました:

Could not load type 'System.Web.Mvc.ViewPage<MyCustomModel>' 

その後、私が見つけました

http://blog.benhall.me.uk/2009/01/aspnet-mvc-rc1-removing-code-behind.html

:あなたは(あなたには、いくつかの理由でローカルのVisual StudioのWebサーバでこれを行う必要はありません)ファイルの背後にあるコードを使用していないサポートするために、web.configファイルを変更する必要がある方法を説明し、この記事Personall y、複雑なMVC(とAJAX.NET)インフラストラクチャ設定で、接続文字列やSMTP設定などの単純なアプリケーション設定がどのように混ざっているのが好きではありません。良い選択肢の1つは、ホスティング会社(DiscountASP.netなど)がMVCをサポートするようにMaster.config(またはそれ以上のレベルのweb.config)を設定することで、web.configに単純なアプリケーションを含めるだけです設定。

1

おそらく、不要なものをすべて削除するまでは、検索と破壊の方法とチップをコンフィギュレーションで削除することになります。アプリケーションとその依存関係を知らなくても、あなたが必要としているものとそうでないものを言うことは難しいです。

ベストプラクティスは、プロダクション環境を可能な限り厳密に反映した開発環境を常に備えていることです。この方法でプロダクション設定を編集する必要はありません。

+0

私は非常に単純なアプリケーションを持っていて、web.configに追加したのはデータベース接続文字列だけです。すべてのハンドラ、モジュール、コンパイラをWebに取り込む必要がありますか?この情報は既にmachine.configにありますか? –

+0

他のものを取り除くことができるはずですが、MVCを使用しているときに、MVCが動作するために必要なハンドラとモジュールが存在する可能性があります。私があなたに伝える最も良いことは、展開する設定を削除するまでローカルでこれをテストすることです。 –

3

.Net 3.5とIIS7はどちらもweb.configにかなりのテキストを追加します。私がしているのは、IIS7のIISマネージャーを使ってアプリケーションを一度構成することです。次に、変更されたweb.configを取得し、ソースコントロールにチェックインします。このようにして、環境間で移行するときにはすべてのIIS設定が保持されます。

+3

web.configが迷惑メールでいっぱいになったような気がします。それがすべてのものを追跡するのは本当に難しいです。 –

2

System.Web.Extensionsは、MS AJAX AKA Atlasのものです。このアセンブリには、いくつかのモジュールとハンドラとセクションがあります。あなたはMS AJAXのものを使用していない場合は、自由に削除してください。

+0

それがなぜ投票されたのか分かりませんが、その提案から自分のWeb設定から大量の迷惑メールを削除しました... – rball

関連する問題