2012-01-26 7 views
2

Длинная и короткая моя машина имела проблемы, и мне пришлось ее перестроить. Я переустановил все свое программное обеспечение и вернул резервные копии моего проекта на машине. Я пытался решить проблемы с SQL-соединением, которые я просто не могу обойти.Проблемы Web.config и MySQL.

Итак, после многих изменений и ошибок я вернул рабочую версию на свою машину. Когда я запускаю его я получаю следующее сообщение об ошибке: Parser Сообщение об ошибке: Неизвестный базы данных «p10009307_sec»

База данных известно моему SQL Workbench и если я оборвать соединение базы данных на странице и настроить его можно подключить ,

Вопрос в том, где он смотрит, что он не может найти MySQL? Я предполагаю его в Webconfig, но я не вижу ничего необычного, что сделало бы localhost отличным. Я сделал копию моего webconfig только с разделами, которые ссылаются на 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, я не знаю, что мне не хватает.

ответ

2

Я ничего не вижу в этом конфигурационном фрагменте, который сообщает «Поставщик данных MySQL», который из доступных доступных строк.

В коде должно быть что-то, что сообщает ему имя или строку conn-string. Что-то вроде этого:

System.Configuration.ConfigurationManager.ConnectionStrings["LocalSqlServer"].ConnectionString 

Кроме того, ваш второй сопп строка имеет одну кавычку перед его именем: «LocalSqlServer

Возможно, вы случайно добавили, и теперь строка сопп не может быть найден имя «LocalSqlServer» (если это проблема, во всяком случае).

+0

Parser Сообщение об ошибке: Неизвестный базы данных 'p10009307_sec' Линия 81: Строка 82: <добавить ApplicationName = "/" Описание = "Государственный провайдер" connectionStringName = "LocalMySqlServer" writeExceptionsToEventLog = "True" Line 83: autogenerateschema = "True" имя = "MySqlSessionStateProvider" Тип = "MySql.Web.SessionState.MySqlSessionStateStore, MySql.Web, Version = 6.4.4.0, линия 84: Культура = нейтральная, PublicKeyToken = c5687fc88969c44d" /> Line 85: StephanM

+0

Я не уверен, что полностью понимаю раздел «Неизвестная база данных« p10009307_sec », особенно потому, что он помечен как« ошибка парсера ». Ошибки Parser в контексте web.config будут связаны либо с синтаксисом xml-синтаксиса, либо с синтаксисом conn-string. Правильно ли ваша строка? Если есть сомнения: создайте файл .udl (переименуйте пустой текстовый файл в something.udl); дважды щелкните его, чтобы открыть, затем используйте его для настройки и проверки строки. После того, как вы закончите, откройте этот файл в блокноте, и будет создана цепочка для копирования. Кроме того, посмотрите сайт http://connectionstrings.com; возможно, вы найдете там некоторые указатели. –

+0

это не похоже, как первые 5 атрибутов добавить? CustomProvider = "MySqlSessionStateProvider"> <добавить ApplicationName = "/" Описание = "Государственный провайдер" connectionStringName = "LocalMySqlServer" writeExceptionsToEventLog = "True" autogenerateschema = "True" name = "MySqlSessionStateProvider" type = "MySql.Web.SessionState.MySqlSessionStateStore, MySql.Web, Version = 6.4.4.0, Culture = нейтрален, PublicKeyToken = c5687fc88969c44d»/> StephanM

0

Если вы хотите использовать базу данных MySQL для хранения сеанса, вы должны объявить это в SessionState для web.config. Кроме того, вы должны заглянуть в файл machine.config, если установлены все поставщики MySQL.

+1

Я не уверен, что сработало в моей схеме, но удаление таблиц не помогло и переустановка MySQL Server не помогла. Только после того, как я сброшу схему, я увижу, что все Ошибки исчезнут, и все работает так, как планировалось. – StephanM