2012-01-26 55 views
2

長短我的機器有問題,我不得不重建它。我重新安裝了所有的軟件,並將我的項目備份放回到機器上。我一直在試圖解決我無法解決的SQL連接問題。Web.config和MySQL問題。

因此,經歷了許多更改和錯誤,我把工作生產版本放回到我的機器上。當我運行它,我得到以下錯誤: 分析器錯誤信息:未知的數據庫「p10009307_sec」

數據庫被稱爲我的SQL Workbench和如果我把一個頁面上的數據庫連接,並配置它,我可以連接。

問題是它在哪裏找不到MySQL?我假設它在Webconfig中,但我沒有看到任何不尋常的東西,會使本地主機不同。我只用參考MySQL的部分製作了我的webconfig副本。

`<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數據提供者」使用哪一個可用連接字符串。

在代碼中必須有一些內容告訴它連接字符串名稱或連接字符串值。事情是這樣的:

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

而且,你的第二康恩串有一個單引號字符其名稱的前面:「LocalSqlServer

也許你不小心添加它,現在的康恩字符串不能被發現「LocalSqlServer」的名稱(如果這就是問題所在)。

+0

分析器錯誤信息:未知數據庫 'p10009307_sec' 81行:82 行:<添加的applicationName = 「/」 描述= 「狀態提供程序」 的connectionStringName = 「LocalMySqlServer」 writeExceptionsToEventLog = 「真」 83行:autogenerateschema = 「真」 名稱= 「MySqlSessionStateProvider」 類型= 「MySql.Web.SessionState.MySqlSessionStateStore,MySql.Web,版本= 6.4.4.0, 線84:文化=中性公鑰= c5687fc88969c44d」/> 85行: StephanM

+0

我不確定我完全理解「未知數據庫」p10009307_sec「」部分,尤其是因爲它被標記爲「解析器錯誤」。 web.config上下文中的解析器錯誤將涉及xml-syntax或conn-string語法。你的連接字符串是否正確?如果有疑問:創建一個.udl文件(將空文本文件重命名爲something.udl);雙擊它打開,然後用它來設置和測試連接字符串。完成後,在記事本中打開該文件,conn-string將在那裏供您複製。另外,請看http://connectionstrings.com網站;也許你會在那裏找到一些指針。 – 2012-01-30 16:48:30

+0

似乎不喜歡的添加?customProvider = 「MySqlSessionStateProvider」> <添加的applicationName = 「/」 描述= 「狀態提供程序」 的connectionStringName = 「LocalMySqlServer」 writeExceptionsToEventLog = 「真」 autogenerateschema的前5點的屬性=「True」name =「MySqlSessionStateProvider」type =「MySql。Web.SessionState.MySqlSessionStateStore,MySql.Web,版本= 6.4.4.0, 文化=中性公鑰= c5687fc88969c44d」 /> StephanM

0

如果你想使用MySQL數據庫存儲會話,你必須在web.config的Sessionstate中聲明這個。此外,如果設置了所有MySQL提供程序,則必須查看machine.config文件。

+1

我不確定它對我的模式有什麼影響,但刪除表並沒有幫助,重新安裝MySQL服務器也沒有幫助。只有在刪除模式之後,我才能看到所有錯誤消失,一切按計劃進行。 – StephanM