質問

マシンに展開されているWCFサービスがあります。このWCFサービスは、SQL ServerまたはSQL Server Expressのいずれかに構成できます。

注: SQLデータベースの場所は、WCFサービスが展開されている場所とは別のマシンにすることができます。

次の情報をXMLファイルに入れます:

  1. ユーザーID
  2. パスワード
  3. サーバー名
  4. MachineName

SQL Server Expressの場合

ServerName プロパティは" SQLEXPRESS"です。内部的にServerNameにMachineNameを追加するため、serverNameは次のようになります。

MachineName \ SQLEXPRESS

接続文字列に渡されます。

SQL Serverの場合

ServerName をSQL Serverに渡すと、例外がスローされます。

最善のアプローチを教えてください!!

役に立ちましたか?

解決

例外は何ですか?また、ServerNameとMachineNameの違いがわからない。 ServerNameとInstanceNameを意味したのでしょうか?この方法で文字列を作成する必要があります(擬似コード、使用している言語はわかりません):

DataSource = ServerName
If (InstanceName != "")
    DataSource += "\" + InstanceName

他のヒント

同じ接続文字列形式を使用して、SQL Server Expressとフルエディションの両方に接続できます。

デフォルトのインストールでは、適切な文字列を使用していることを確認してください。このようなことが一般的です。

Data Source=MachineName\SQLExpress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;

および完全なSQL Serverの場合

Data Source=MachineName;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;

最も可能性の高い理由は、MSSQLSERVERのインスタンスが名前付きインスタンスではなくデフォルトインスタンスで実行されているためです(SQL Expressの動作です)。回避策は、環境固有の接続文字列を保持するローカルプロパティファイルを構成することです。次に、構成ファイル自体でファイルを参照するか、ビルドプロセスの一部に構成ファイルに情報を組み込みます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top