2012-03-07 21 views
1

私はローカルで実行しているVisual Studio 2010プロジェクトが2つあります。 1つはクラウドプロジェクトで、ローカルのSQL Expressに加えてAzureテーブル(開発)ストレージに接続し、もう1つはクラウドプロジェクトではありません。両方のプロジェクトは、xsdを介して生成された同様のコードを介してローカルのSQL Expressデータベースに接続しようとし、データバインドされたグリッドを介してaspxに直接接続しようとします。SQL Expressへの接続の問題

"ファイルC:\ Users ... mdfの自動ネームデータベースを追加しようとして失敗しました。同じ名前のデータベースが失敗しました。存在するか、指定されたファイルを開くことができないか、またはUNC共有上にあります。

どちらのプロジェクトは、Web.configファイルで同じ接続文字列を使用します。

私はうまく急行データベースに接続することができ、クラウドプロジェクトからVS2010サーバエクスプローラで
<add name="WorkoutLogConnectionString1" 
    connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\...mdf; 
    Integrated Security=True;User Instance=True" providerName="System.Data.SqlClient" /> 

が、プロジェクトには、それを実行したとき接続に失敗しました。クラウドプロジェクトは、Web AzizのリモートクラウドデータベースにWeb.configの別の接続文字列を使用して接続し、その接続も正常に動作します。

私はMSのサポート記事:http://support.microsoft.com/kb/2002980を見て、プロジェクトがもともと異なるバージョンのVSで作成されている可能性があり、問題が発生している可能性があると思ったので、ASP.net 4.0アプリケーションプール無駄に。

SQL Express接続文字列は1つのプロジェクトで動作し、他のプロジェクトでは機能しないので、私は困惑しています。他の設定要素や、私が見ていなければならないクラウドプロジェクトである失敗したプロジェクトに関連するものがありますか?

+0

接続文字列が表示されませんでした。 ejm

+0

接続文字列を表示させました。コードサンプル(特にHTMLと解釈される可能性のあるサンプル)を強調表示するには、エディタツールバーのコードボタン{}を使用します。 –

答えて

1

データベースを実際のSQL Server Expressインスタンスにアタッチしましたか?その場合は、AttachDbFilenameUser Instanceナンセンスをすべて削除してください。物事をシンプルかつ一貫性を保つために、おそらくSQL Authenicationをローカルで使用することができます。したがって、次のようなものを用意してください:

<add name="WorkoutLogConnectionString1" 
    connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=DatabaseName; 
    User ID=SQLAuthUsername;Password=password" providerName="System.Data.SqlClient" /> 
+0

これは間違った質問ですが、ユーザーIDとパスワードはどのようになりますか?私はSQL Azureアカウントのためにそれらが何であるか知っていますが、パスワードを使わずにローカルDB SSMS show PCName \ Userに接続すると、私がそれらを試したとき、接続は失敗します。 – ejm

+0

ローカルのSQLユーザー名とパスワードを作成した場合は、それを使用します。さもなければ、私が上に置いたユーザーIDとパスワードの部分の代わりに 'Integrated Security = True'部分だけを保つべきです。私はAzureとの一貫性を維持するためのSQL認証を提案していたので、あなたのアプリケーションに十分な特権を持つSQLユーザー名とパスワードを作成することができました。サーバー名だけを変更する必要があるようにAzureアカウントに一致させることさえできます。 –

+0

ありがとうございます。私はいくつかのSQL Expressを使用している間にSQL Server 2008 R2の奇妙な組み合わせを持っているので、接続文字列のデータソースを「(ローカル)」として指定する必要がありました。 – ejm

2

同時に両​​方のプロジェクト(同時に複数のスタートアッププロジェクト)を実行するのは難しいですか?もしそうなら、それは確かにSQL Expressで一般的な問題です。多くの場合、VS Server Explorerでデータベースを開いたときにも発生します。同じデータベースに複数のアプリケーションがアクセスしている場合は、SQL Server Expressに手動でデータベースを接続することをお勧めします。

  1. ローカルのSQL Expressインスタンスに接続するSSMS(Sql Server Management Studio)を開きます。右クリックし、[データベースのブランチ
  2. から
  3. 移動 - >あなたのMDFファイルにデータベース
  4. ブラウズを取り付け
  5. は完了!

ここで、接続をAaronの提案に変更してください。私は現在、AttachDbFilenameとUserInstanceを使用する代わりに、データベースを直接接続し、SQL Serverの通常のスタンドアロンインスタンスとして使用するようアドバイスしています。多くの頭痛を保存します。

+1

ユーザーインスタンス機能全体が廃止されたことは言うまでもありません... –

+0

ありがとう! SSMSにmdfファイル(全ディレクトリツリーをナビゲートすることはできませんでした)を見つけるために少し苦労しましたが、ファイルをSQL ServerのDATAディレクトリに移動し、すべて正常に動作しました。 – ejm

関連する問題