Asp.net Web.config和MySQL问题。

Asp.net Web.config和MySQL问题。,asp.net,mysql,visual-studio-2010,.aspxauth,Asp.net,Mysql,Visual Studio 2010,.aspxauth,不管怎么说,我的机器出了问题,我不得不重建它。我重新安装了所有软件,并将项目备份放回计算机上。我一直在尝试解决我无法解决的SQL connect问题 因此,在经历了许多更改和错误之后,我将正常工作的生产版本放回到了我的机器上。当我运行它时,我得到以下错误: 分析器错误消息:未知数据库“p10009307_sec” 我的SQL工作台知道该数据库,如果我在页面上删除数据库连接并对其进行配置,我就可以进行连接 问题是它在哪里找不到MySQL?我假设它在Webconfig中,但我没有看到任何会使loca

不管怎么说,我的机器出了问题,我不得不重建它。我重新安装了所有软件,并将项目备份放回计算机上。我一直在尝试解决我无法解决的SQL connect问题

因此,在经历了许多更改和错误之后,我将正常工作的生产版本放回到了我的机器上。当我运行它时,我得到以下错误:
分析器错误消息:未知数据库“p10009307_sec”

我的SQL工作台知道该数据库,如果我在页面上删除数据库连接并对其进行配置,我就可以进行连接

问题是它在哪里找不到MySQL?我假设它在Webconfig中,但我没有看到任何会使localhost与众不同的异常情况。我复制了一份我的网络配置,其中只包含引用MySQL的部分

 `<connectionStrings>
<remove name="LocalMySqlServer" />
<add name="LocalMySqlServer" connectionString="server=localhost;password=xxxxxxxxxx;
User Id=xxxxxxxxxx;logging=True;database=xxxxxxxxxx_sec" providerName="MySql.Data.MySqlClient" />
<add name="'LocalSqlServer" connectionString="server=localhost;database=xxxxxxxxxx_CUS;
logging=True;password=xxxxxxxxxx;User Id=xxxxxxxxxxER" providerName="MySql.Data.MySqlClient" />

<remove name="LocalSqlServer" />
<add name="p10009307_cusConnectionString" connectionString="server=localhost;
User Id=xxxxxxxxxxER;password=xxxxxxxxxx;database=xxxxxxxxxx_CUS"
providerName="MySql.Data.MySqlClient" />
<add name="p10009307_cusConnectionString2" connectionString="server=localhost;
User Id=xxxxxxxxxER;password=xxxxxxxxxx;database=xxxxxxxxxx_CUS; 
SQL SERVER MODE=True" providerName="MySql.Data.MySqlClient" />

</connectionStrings>

<system.data>
   <DbProviderFactories>
     <add name="MySQL Data Provider" invariant="MySQL.Data.MySqlClient" 
     description=".Net Framework Data Provider for MySQL"
     type="MySQL.Data.MySqlClient.MySqlClientFactory, MySql.Data, 
     Version=6.4.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
  </DbProviderFactories>
</system.data>
<system.web>
    <customErrors mode="Off" />
    <compilation targetFramework="4.0" debug="true">
    <assemblies>
        <add assembly="MySql.Data, Version=6.4.4.0, Culture=neutral,
        PublicKeyToken=c5687fc88969c44d" />
    </assemblies>
    </compilation>
    <authorization>
        <allow roles="Admin" />
    </authorization>
    <authentication mode="Forms">
       <forms loginUrl="~/Account/Login.aspx" timeout="2880" />
    </authentication>
    <membership defaultProvider="MySQLMembershipProvider">
      <providers>
          <clear />
              <remove name="MySQLMembershipProvider" />
              <add name="MySQLMembershipProvider"
              type="MySql.Web.Security.MySQLMembershipProvider, 
              MySql.Web, Version=6.4.4.0, Culture=neutral, 
              PublicKeyToken=c5687fc88969c44d" applicationName="/" 
              description="Membership Provider" 
              connectionStringName="LocalMySqlServer" 
              writeExceptionsToEventLog="True" 
              autogenerateschema="True" 
              enablePasswordRetrieval="False" 
              enablePasswordReset="True" 
              requiresQuestionAndAnswer="False" 
              requiresUniqueEmail="False" passwordFormat="Clear" 
              maxInvalidPasswordAttempts="5" minRequiredPasswordLength="7"
              minRequiredNonalphanumericCharacters="1" passwordAttemptWindow="10"
              passwordStrengthRegularExpression="" />
      </providers>
    </membership>
<profile defaultProvider="MySQLProfileProvider">
  <providers>
    <clear />
    <remove name="MySQLProfileProvider" />
    <add name="MySQLProfileProvider" type="MySql.Web.Profile.MySQLProfileProvider, 
    MySql.Web, Version=6.4.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"
    applicationName="/" description="Profile provider" 
    connectionStringName="LocalMySqlServer" writeExceptionsToEventLog="False"
    autogenerateschema="True" />
 </providers>
</profile>
<roleManager enabled="true" defaultProvider="MySQLRoleProvider">
  <providers>
    <clear />
    <remove name="MySQLRoleProvider" />
    <add applicationName="/" description="Role Provider" connectionStringName="LocalMySqlServer"
    writeExceptionsToEventLog="True" autogenerateschema="True" name="MySQLRoleProvider"
    type="MySql.Web.Security.MySQLRoleProvider, MySql.Web, Version=6.4.4.0, Culture=neutral,
    PublicKeyToken=c5687fc88969c44d" />
 </providers>
</roleManager>
<sessionState mode="Custom" cookieless="true" regenerateExpiredSessionId="true"
customProvider="MySqlSessionStateProvider">
<providers>
    <add name="MySqlSessionStateProvider" type="MySql.Web.SessionState.MySqlSessionStateStore,
    MySql.Web, Version=6.4.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"
    applicationName="/" description="State Provider" connectionStringName="LocalMySqlServer"
    writeExceptionsToEventLog="True" autogenerateschema="True" />
</providers>
</sessionState></system.web>
</system.webServer>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
  <dependentAssembly>
    <assemblyIdentity name="MySql.Data" publicKeyToken="c5687fc88969c44d" />
    <bindingRedirect oldVersion="0.0.0.0-6.3.7.0" newVersion="6.4.4.0" />
  </dependentAssembly>
</assemblyBinding>
  </runtime>

</configuration>`
`
`

所有东西都在本地主机上运行。此时,我已将DLL放在bin目录中,我不知道我缺少了什么。

在配置代码段中,我没有看到任何东西告诉“MySQL数据提供程序”在可用的conn字符串中使用哪一个

代码中一定有东西告诉它conn字符串名称或conn字符串值。大概是这样的:

System.Configuration.ConfigurationManager.ConnectionStrings["LocalSqlServer"].ConnectionString
此外,您的第二个conn字符串在其名称前有一个单引号字符:“LocalSqlServer”


可能是您无意中添加了它,现在找不到名为“LocalSqlServer”的conn字符串(如果这就是问题所在)。

如果要使用MySQL数据库存储会话,必须在web.config的Sessionstate中声明。此外,如果设置了所有MySQL提供程序,则必须查看machine.config文件。

解析器错误消息:未知数据库“p10009307_sec”第81行:第82行:第85行:我不确定我是否完全理解“未知数据库“p10009307_sec”部分,特别是因为它标记为“解析器错误”。web.config上下文中的解析器错误可能与xml语法或conn字符串语法有关。你的控制线正确吗?如果有疑问:创建一个.udl文件(将空文本文件重命名为某物.udl);双击它以打开,然后使用它设置和测试conn字符串。完成后,在记事本中打开该文件,conn字符串将在那里供您复制。另外,看看网站;也许你会在那里找到一些指针。它似乎不喜欢add?customProvider=“MySqlSessionStateProvider”>的前5个属性。我删除了数据库并尝试重新创建它。我想我已经消除了大部分的错误,除了一个。为什么“不允许使用'connectionStringName'属性”。我不明白。如果我删除它,它会说它不能是空的。我不确定是什么在我的模式中起作用,但是删除表没有帮助,重新安装MySQL服务器也没有帮助。只有在删除模式之后,我才能看到所有错误都消失了,一切都按计划进行。