Model報錯:指定的存儲區提供程序在配置中找不到 的解決


開了項目發現沒裝mysql及mysql connector/.net。下了個最新版本,結果打開vs,進入模型edmx頁面就出了這個問題。

 

剛開始以為是ProviderManifestToken版本的問題,上頭寫着5.6,改成.net的dll版本后無效。多處查看這個參數的含義才發現這個表示的是mysql的版本號(與sqlserver連接器一致),雖然我沒弄明白為什么這個要放里頭。

 

然后網上google,mysql的信息很少,不過有不少是sqllite的,應該差不多。將如下內容添加到web.config里頭,錯誤還是沒有解決。當時還是不確定是為什么。

<system.data>
    <DbProviderFactories>
     <remove invariant="MySql.Data.MySqlClient" />
      <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.6.5.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
     </DbProviderFactories>
  </system.data>

 

多方google后發現很多地方提到是說這個沒有在machine.conf里頭寫。於是決定冒險改一下。備份machine.conf后開始改,將這一句加進去,加到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.6.5.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />

 

其實我改對了,但沒有生效,很郁悶的想了半天出去吃了個飯,回來再看,發現只改了freamwork64目錄下頭的config,沒改freamwork下頭的config。於是繼續改,改好了后重啟vs就可以了。

 

后來推測為什么web.conf里頭不行,我想是由於model那edmx是用vs打開的,不屬於項目里頭的東西,因此會報錯。

 

不過無論如何,做好了,小記一下,或許會有和我一樣找了幾個小時的家伙偶爾看到。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM