2016-11-11 1 views
0

Так я получаю ошибку, что я должен вызвать WebSecurity.InitializeDatabaseConnection , прежде чем я вызвать любую функцию WebSecurity классаWebSecurity.InitializeDatabaseConnection Функция не нашла мое подключение Строки

Так я создал _AppStart.cshtml и поместила этот код в это:

@using System.Configuration; 
@{ 
    string connString = ConfigurationManager.ConnectionStrings["conString"].ConnectionString; 
    WebSecurity.InitializeDatabaseConnection(connString, "users", "id", "email", autoCreateTables: true); 

} 

и Web.Config я получил

<appSettings> 
    <add key="enableSimpleMembership" value="true" /> 
    </appSettings> 

    <connectionStrings> 
    <add name="conString" providerName="System.Data.SqlClient" 
     connectionString="Data Source=(local)\SQLEXPRESS;Initial Catalog=sales;Integrated Security=True;Pooling=False"/> 
    </connectionStrings> 

теперь я получаю эту ошибку фр om Метод InitializeDatabaseConncection:

Строка подключения «Источник данных = (локальный) \ SQLEXPRESS; Начальный каталог = продажи; Интегрированная безопасность = Истина: Объединение = Ложь» не найдена.

В чем проблема?

+1

Похоже, что метод InitializeDatabaseConnection ожидает имя строки подключения, а не сама строка. – tattarrattat

ответ

3

WebSecurity.InitializeDatabaseConnection не запрашивает у вас строку подключения. Он запрашивает имя строки подключения. Затем он извлечет строку подключения из файла конфигурации для вас.

WebSecurity.InitializeDatabaseConnection("conString", "users", "id", "email", autoCreateTables: true); 

Если у вас есть вопрос о том, почему метод не ведет себя, как и ожидалось, read the documentation! Он устанавливает для этого параметра:

Имя строки подключения для базы данных, содержащей информацию о пользователе. Если вы используете SQL Server Compact, это может быть имя файла базы данных (файл .sdf) без расширения имени файла .sdf.