2012-04-28 6 views
2

私は映画チケット予約システムを作成しました。他のマシンに展開する必要があります。私はデータベースの問題に直面しています。私のソフトウェアを他のマシンにデプロイすると、それはインストールされましたが、SQLサーバーがないために動作しませんでした。だから、そこにSQLサーバーをインストールしました。しかし、それでも私はSqlConnectionで与えたサーバ名のパラメータに問題があることを示しました。私はそこを変更しました。もう一度データバインディングの問題に直面しています。私のソフトウェアをデータベースと一緒に他のマシンに展開する必要があります

私は何度も何度も変わることにうんざりしています。このための簡単で効率的なソリューションはありますか?非常に緊急です。私は次のことを達成

ヘルプ:

  • 私はそれを展開するときに、プロジェクトと共にデータベースを提供します。

  • 私のデータベースを他のマシンに接続する場合、私は既存のデータバインディングを使用したいと思います。

  • 私が行ったすべての接続に対してデータベースサーバー名を何度も変更したくありません。私はそれを展開するときに

+2

ムービー予約システムを作成している場合は、SQL Serverのインスタンスをサーバーなどのどこかに置いて、すべてのクライアントアプリケーションがネットワーク経由でそのインスタンスを参照してはいけませんか?すべてのマシンにSQL Serverをインストールする必要はありません。 – Polynomial

+0

新しくインストールされたマシンでSQLサービスが実行されていることを確認しましたか? –

+0

ここからサーバー/インスタンス名はどこから取得していますか?設定ファイルは通常の方法です。データベースがどこにあるのかを知ることを除いて、コードには関係ありません。それは、あなたがやっていることを賢明に配備するための潜在的な他の問題があると言いました。 –

答えて

0
  • プロジェクトと共にデータベースを提供します。

データベースとGUIの両方で「ワンクリック」インストールが困難です。しかし、バージョニングやタイムスタンプを使用してデプロイメント項目を整理すると、それらの項目を一緒に保つことができます。ソースは、これらのアイテムをロールバックして必要に応じて必要なバージョンを起動できるように制御します。デプロイメントを1つのユニットとして関連付けるために、GUIコンポーネントと一緒にバージョン番号またはタイムスタンプを結びつける方法があります。

たとえば、変更データベーススクリプト(FooTable v100、v101、v102)をバージョンアップするか、タイムスタンプしてソース管理にチェックインすることができます。いくつかのタイプの構成データベースにさまざまな関連付けを格納します。私の仕事では、SharePointリストを使用して展開を項目化し、SharePointリスト項目参照を使用して、特定の変更のすべての異なる項目をまとめて参照します。すべてのソースが管理されているため、必要に応じて特定の変更の展開項目を簡単に把握して取得できます。

  • 私は他のマシン上で私のデータベースをアタッチした場合、私は私の結合既存
    データを使用します。

  • 接続ごとに何度もデータベースサーバー名を変更したくありません。

あなたはこのような

データソース= myServerAddressとして信頼された接続を使用する接続文字列を使用することができます;初期カタログ= MYDATABASE;統合セキュリティ= SSPI;

だから、環境ごとに異なるユーザー名とPWを埋め込む必要はありません。それぞれの環境サーバー上で、サーバー名とデータベース名をmachine.configまたはweb.configに格納できます。初期カタログ= myDevDataBase;統合セキュリティ= SSPI

のでDEVに、のConnectionStringは

データソース= myDevServerである可能性があります。テストの

データソース= myTestServer;初期カタログ= myTestDataBase;統合セキュリティ= SSPI;

これらをサーバーの構成ファイルに格納する場合は、パッケージ内で変更する必要はありません。

パッケージにその設定を保存する必要がある場合は、展開する環境に基づいて設定を動的に変更する手法を使用する必要があります。たとえば、環境変数を使用して環境を判断し、configを動的に変更するために実行するコードを知ることができます。コードの代わりに、XSLTを使用してXML設定を変更することもできます。インストール/アンインストール時に実行するカスタムアクションもMSIで設定できます。デプロイ時に必要に応じて設定を変更するコードを追加することができます。

同様に、データベーススクリプト自体は、展開している環境に基づいて変更できます。 SQLCMD変数を使用して、SQLコードを動的に変更することができます(特に、3つおよび4つのパーツの名前付けリファレンスでデータベース名とサーバー名を変更できます。たとえば、devlinkserver.devdb.dbo.fooは、devlinkserverとdevdbの代わりにtestlnkserver.testdb.dbo.fooに変更できます) SQLCML変数を使用)。 @@ SERVER = 'somedevdbserver'

SET IF

:必要に応じてにあなたが展開している環境に基づいて変数の値を変更するために使用SQLCMDsスクリプトlinkserver = 'DevDBServer'

サーバ@@ IF = 'sometestserver'

SET:linkserver = 'testDBServer'

などを...要するに

は、できるだけ多くを保ちます構成はすべての環境で可能な限り同じです。上記のさまざまなテクニックを使用して、各環境で異なる必要があるパーツに必要な設定を動的に変更します。

関連する問題