5

SQL サーバーを別のマシンに移動中です。現在、Web サーバーと SQL サーバーを同じボックスで実行しています。したがって、IIS と SQLServer を備えた運用サーバーと、この設定を反映する別の開発サーバーがあります。

asp.net コントロールの app.config と Web サイトの web.config に関して言えば、"Initial Catalog=MyDB;..." を使用できるため、これはうまく機能し、両方のマシンで DB 名が同じだったために機能しました。 .

現在、同じボックス (MyDB、MyDB-Dev) で両方の DB を実行することを検討しています。展開またはコンパイルするたびに web.config と app.config を編集する必要なく、これを行う簡単な方法はありますか? これは、Visual Source Safe で処理できるものですか?

4

8 に答える 8

8

これが私が使用するソリューションです。Web.Config で、次の "include" 行を配置します。

<connectionStrings configSource="WebCS.config"/>

次に、WebCS.config ファイルを作成し、次のように入力します。

<connectionStrings>
<add name="ConnString" 
     connectionString="Data Source=YourServer;Initial Catalog=YourDB;etc..
     providerName="System.Data.SqlClient"/>
</connectionStrings>

次に、VS でサイトを公開した後、新しいマシンに転送するために他のすべてをまとめる前に、WebCS.config ファイルを削除します (これを行うためのバッチ ファイルがあります)。そうすれば、接続文字列をいじることなく、すべての Web.Config ファイル設定を使用できることが保証されます。

于 2009-02-04T18:24:56.417 に答える
4

web.config のデプロイは、dev から prod にファイルをコピーするケースではほとんどありません。エントリが異なるのは普通のことです。たとえば、開発 Web サイトはローカル データベースまたは開発データベース ボックスを指し、製品 Web サイトは通常、製品データベース ボックスを指している必要があります。

展開するとき、通常、運用環境の web.config を変更する必要があるのは、新しい構成要素を必要とするアプリのアーキテクチャ上の変更を行った場合、または冗長なものを削除したい場合のみです。

ソース管理では、通常、web.config を除外し、web.config.template などの構成ファイルを作成するためのベースとして使用できるテンプレート ファイルを用意します。web.config に構造的な変更を加える場合は、web.config.template に変更を加えてから、dev と prod 用にコピーを作成し、それに応じて dev と prod の設定を適用する必要があります。

于 2009-02-04T17:59:09.573 に答える
1

ここであなたの質問を完全に理解していないかもしれませんが、アプリケーションを展開するときに、web.config に変更を加える必要がない限り、web.config を再展開することはできないようです。つまり、 web.config ファイル を除くすべてのファイルをディレクトリにコピーします。

デプロイ間で web.config ファイルを変更する必要がある場合は、サーバーごとに web.config を編集する必要があります。

または、web.config 以外の接続文字列を格納する別の場所を各マシンで見つけることもできます。

于 2009-02-04T17:57:56.317 に答える
0

すべての接続文字列を web.config に入れ、アプリケーションの主要なポイントで、アプリ サーバーに基づいてどれを使用するかを決定できますか?

于 2009-02-08T03:46:34.923 に答える
0

明確にするために、現在の環境は2つのサーバーです。

開発アプリ/DB サーバー
本番アプリ/DB サーバー

そして、あなたはそれをこのようなものにすることを考えています

アプリケーション サーバー (開発+本番)
DB サーバー (開発+本番)

その場合は、DB とアプリケーションを 2 つの別個のサーバーに分離することをお勧めします。複数の DB サーバーをクラスター化する必要がある場合、または (より一般的には) 単一の DB サーバーの前にある複数の Web サーバーの負荷を分散して、アプリケーションのパフォーマンスを向上させます。

そうは言っても、開発環境と本番環境をこのように同じサーバー上で並べて実行することはお勧めしません。財政的には理にかなっているかもしれませんが、分離された開発環境の目的は、「開発ミス」が本番環境に波及しないようにすることです。このように行うと、開発環境にプッシュされる悪いコードがある場合、ダウンタイムが発生する可能性があります。

于 2009-02-05T08:19:03.723 に答える
0

web.config の connectionStrings 要素の configSource 属性を確認してください。

それはそれを十分に簡単にするはずです

于 2009-02-04T18:27:21.140 に答える