最近、MVC3 で新しいプロジェクトを作成し、MySQL データベースを問題なく接続しました。ユーザーとロールを作成できます (NuGet のユニバーサル プロバイダー/SecurityGuard を使用)。現在、編集ページで Dapper を使用してクエリを実行しようとしており、SQL 例外を取得しています。
デバッグ: SQL Server への接続の確立中に、ネットワーク関連またはインスタンス固有のエラーが発生しました。サーバーが見つからないか、アクセスできませんでした。インスタンス名が正しいこと、および SQL Server がリモート接続を許可するように構成されていることを確認してください。(プロバイダー: 名前付きパイプ プロバイダー、エラー: 40 - SQL Server への接続を開けませんでした)
YSOD:
The system cannot find the file specified.
var connection = new SqlConnection(connString);
connection.Open();
return connection;
}
これが私がやろうとしていることです:
web.config:
<connectionStrings>
<add name="DefaultConnection" connectionString="Database=[database];Data Source=localhost;Uid=[username];Pwd=[password];" providerName="MySql.Data.MySqlClient" />
</connectionStrings>
<membership defaultProvider="MySqlMembershipProvider">
<providers>
<clear />
<add name="MySqlMembershipProvider" type="MySql.Web.Security.MySQLMembershipProvider, MySql.Web, Version=6.6.5.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" autogenerateschema="true" connectionStringName="DefaultConnection" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" passwordFormat="Hashed" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" passwordStrengthRegularExpression="" applicationName="/" />
</providers>
</membership>
<profile defaultProvider="MySQLProfileProvider">
<providers>
<clear />
<add name="MySQLProfileProvider" type="MySql.Web.Profile.MySQLProfileProvider, MySql.Web, Version=6.6.5.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
</providers>
</profile>
<roleManager enabled="true" defaultProvider="MySqlRoleProvider">
<providers>
<clear />
<add connectionStringName="DefaultConnection" applicationName="/" autogenerateschema="True" name="MySQLRoleProvider" type="MySql.Web.Security.MySQLRoleProvider, MySql.Web, Version=6.6.5.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
</providers>
</roleManager>
Db.cs:
public class Db
{
public static IDbConnection GetOpenConnection()
{
var connString = ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;
var connection = new SqlConnection(connString);
//---- Hangs Here ----//
connection.Open();
return connection;
}
}
メンバーシップコントローラー:
var connection = Db.GetOpenConnection();
{
const string conn = @"SELECT id
FROM my_aspnet_users
WHERE name = @UserName";
var result = connection.Query<UserViewModel>(conn, new { userName }).Single();
viewModel.Id = result;
}
接続を開こうとするとハングするため、コントローラーに到達することはありません。私はMySQLを初めて使用するので、見落としているか、追加するのを忘れている可能性があります。ありがとう!