2012-01-12 2 views
1

Извините за мой английский.«Ошибка при попытке инициализировать объект System.Data.SqlClient.SqlConnection».

Я начал писать проект на asp.net и столкнулся с проблемой. Когда я пытаюсь выполнить этот код:

System.Web.Security.Roles.CreateRole("User"); 

я получаю исключение: Произошло ошибки при попытке инициализировать System.Data.SqlClient.SqlConnection объект. Значение, которое было предоставлено для строки подключения, может быть неправильным или может содержать недопустимый синтаксис. Имя параметра: connectionString

Это часть конфигурации моего проекта:

<configuration> 
    <system.web> 
     ... 
     <roleManager enabled="true" defaultProvider="SqlRoleProvider"> 
     <providers> 
      <clear/> 
      <add name="SqlRoleProvider" 
       connectionString="ForumDB" 
       applicationName="/" 
       type="System.Web.Security.SqlRoleProvider"/> 
     </providers> 
     </roleManager> 
    </system.web> 
    <connectionStrings> 
    <clear/> 
    <add name="ForumDB" 
     connectionString="Data Source=(local)\SQLEXPRESS;Initial Catalog=ForumDB;Integrated Security=True;Pooling=False" 
     providerName="System.Data.SqlClient"/> 
    </connectionStrings> 
</configuration> 

Я сначала подумал, что строка соединения было написано неправильно, но я проверил несколько раз. Также этот код работает:

var connectionString = ConfigurationManager.ConnectionStrings["ForumDB"]; 
    DbProviderFactory providerFactory = DbProviderFactories.GetFactory(connectionString.ProviderName); 
    DbConnection connection = providerFactory.CreateConnection(); 
    connection.ConnectionString = connectionString.ConnectionString; 
    connection.Open(); 

Я уверен, что строка подключения написана правильно. Пожалуйста, помогите мне! Что не так?

+0

этот код выполняется на той же машине, где находится экземпляр SQL Server? –

+0

@Shark, да. База данных находится на том же компьютере, на котором выполняется код. –

+0

Plz проверить http://msdn.microsoft.com/en-us/library/system.web.security.sqlroleprovider.aspx. Это может быть оператор '', который у вас есть. Но не уверен. Также, если возможно, разместите свой полный 'config' –

ответ

0

Я сделал ошибку здесь:

<roleManager enabled="true" defaultProvider="SqlRoleProvider"> 
    <providers> 
     <clear/> 
      <add name="SqlRoleProvider" 
       connectionString="ForumDB" 
       applicationName="/" 
       type="System.Web.Security.SqlRoleProvider"/> 
    </providers> 
</roleManager> 

я должен был написать:

connectionStringName="ForumDB" 
Смежные вопросы