2012-01-12 73 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实例在同一台机器上运行? – 2012-01-12 04:52:17

+0

@鲨鱼,是的。数据库位于运行代码的同一台机器上。 – 2012-01-12 04:56:13

+0

Plz检查http://msdn.microsoft.com/en-us/library/system.web.security.sqlroleprovider.aspx。这可能是你拥有的''声明。但不确定。此外,如果可能,请发布完整的'config' – 2012-01-12 05:15:17

回答

0

我在这里做了一个错误:

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

我不得不写:

connectionStringName="ForumDB"