23

Visual Studio 2012を使用してC#で新しいMVC4アプリケーションを作成しました。新しいSQLServer 2012(標準)インスタンスに接続しようとしていますが、接続文字列を正しく設定できないようです。

Web.configからの接続文字列:

  <connectionStrings>
    <add name="ConnectionStringName"
        providerName="System.Data.SqlClient"
        connectionString="Data Source=MyServerName;
                          Initial Catalog=MyDatabaseName;
                          Integrated Security=False;
                          User ID=MyUserID;Password=MyPassword;
                          MultipleActiveResultSets=True" />
  </connectionStrings>

Visual Studio内からASP.NET構成に移動するたびにページが読み込まれますが、[セキュリティ]をクリックするとすぐに次のメッセージが表示されます。

選択したデータストアに問題があります。これは、無効なサーバー名または資格情報、または不十分な権限が原因である可能性があります。また、ロールマネージャ機能が有効になっていないことが原因である可能性もあります。下のボタンをクリックすると、新しいデータストアを選択できるページにリダイレクトされます。

次のメッセージは、問題の診断に役立つ場合があり ます。SQLServerデータベースに接続できません。

クレデンシャルが正しいことを確認しました(SQL Management Studioを介して接続するためにクレデンシャルを使用できます)。他に確認できることはありますか?私は困惑しています。

アップデート:

SQL Management Studio(MSSQLSERVER)内からデフォルトのインスタンスに接続できなかったため、SQLを再インストールして、名前付きインスタンス(LHSQLSERVER)を作成しました。これで、SQL Management Studioでそのインスタンスに接続できますが、ASP.NET構成から同じエラーが発生します。

注意すべきもう1つのこと-私が実行したaspnet_regsqlツールは、Framework64\v4.0.30319フォルダーからのものでした。.NET 4.5を使用している場合、それは正しいですか?

更新2:

接続文字列を、動作することがわかっているリモートサイト(つまり、mysite.winhost.com)への接続文字列に置き換えようとしましたが、ASP.NET Webサイト構成ツールで同じエラーが発生しますか?FWIW私もWindows8を使用していますが、それが問題になるとは思いませんでした。

他に確認できることはありますか?

更新3:

MVC 4ではaspnet_regsqlツールはもう必要ないというこの投稿を見つけたので、ツールを再実行してすべての設定を削除しましたが、運が悪かったのです。誰かが以前にMVC4でこれを行ったことがありますか?

更新4:

私が見つけた解決策については、以下の私の答えを参照してください。

4

5 に答える 5

12

SQL Management Studioを使用して接続できる場合は、接続文字列に問題があるはずです-

接続文字列使用している形式は次のとおりです-

Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI;
User ID=myDomain\myUsername;Password=myPassword;

IP Address, Port-のようなデータソースフィールドで使用してみてください

 <connectionStrings>
    <add name="ConnectionStringName"
        providerName="System.Data.SqlClient"
        connectionString="Data Source=190.190.200.100,1433;
                          Initial Catalog=MyDatabaseName;
                          Integrated Security=False;
                          User ID=MyUserID;Password=MyPassword;
                          MultipleActiveResultSets=True" />
  </connectionStrings>

または他のバリエーションを試してください-

標準セキュリティ

Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;

信頼できる接続

Server=myServerAddress;Database=myDataBase;Trusted_Connection=True;

SQLServerインスタンスへの接続

Server=myServerName\myInstanceName;Database=myDataBase;User Id=myUsername;
Password=myPassword;

参照-http ://www.connectionstrings.com/sql-server-2012

于 2012-10-21T18:38:59.587 に答える
2

構成でロールマネージャーを有効にする必要がある場合があります

<roleManager enabled="true"/>
于 2012-10-21T18:40:38.653 に答える
2

SQL 2012では試しませんでしたが、この接続文字列はSQL2008R2で正常に機能しました

connectionString="Server=ServerAddress;Database=DataBaseName;User Id=Username;Password=Password;"

また

connectionString="user id=UserName;password=Password;initial catalog=DatabaseName;data source=SQLServerIPorFQDN;Connect Timeout=30;"
于 2012-10-21T18:37:43.330 に答える
1

皆様からのご意見ありがとうございました。ついに解決策を見つけました。VS2012がMVC4に使用する新しいシンプルメンバーシップについて説明しているこの記事に出くわしました。基本的に、最初からやり直して、新しいデータベースと新しいMVC 4プロジェクトを作成し、記事の指示に従いました。案の定、Webページに「登録」するだけで、データベースにテーブルが作成され、ユーザー情報が保存されました。

于 2012-10-30T03:10:44.877 に答える
1

lhan16の答えは私を助けましたが、追加する必要があるのはDefaultConnectionだけであると言うのは簡単だったでしょう。同じ場所から始めましたが、MVCが使用するデータベース接続がセキュリティフレームワークで機能しません。フレームワークの作成者は、DefaultConnectionを使用しないとは想像もしていませんでした。

于 2013-01-17T02:45:00.367 に答える