zoukankan      html  css  js  c++  java
  • 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打开的,不属于项目里头的东西,因此会报错。

    不过无论如何,做好了,小记一下,或许会有和我一样找了几个小时的家伙偶尔看到。

  • 相关阅读:
    寒假生活
    VS2010调试时修改代码 调试时源文件与模块生成时的文件不同
    如何在VS VC 中DLL使用CString类
    SVChost执行原理学习
    error LNK2001: unresolved external symbol __imp__PathFileExistsA@4
    visual studio 2010 遇到了异常,可能是由某个扩展导致的...
    C++运算各版本学习
    寒江独钓-键盘过滤学习2修改IDT + IOAPIC重定位表截获PS2键盘中断
    寒江独钓-键盘过滤学习1传统型的键盘过滤
    ObReferenceObjectByName 函数解析
  • 原文地址:https://www.cnblogs.com/slayercat/p/3050688.html
Copyright © 2011-2022 走看看