最近做了一个小应用,使用SQLite做数据库。开始用DBLINQ的时候,做一个LINQ查询出现不支持的问题。后来看到Entity Framework是可以支持SQLite的,于是很快转换过来。完成开发,在开发机器上测试正常。部署到正式环境中,开始出现“指定的存储区提供程序在配置中找不到,或者无效。”----> "找不请求的.Net Framework数据提供程序。可能没有安装”。

这个问题出现的很奇怪,因为生产机器上也运行了SQlite.net 的安装包。
运行了一个测试程序,输出 DbProviderFactories.GetFactoryClasses()的DataTable,发现生产环境的Data Provider的确没有SQLite这一项。

在网上查了一圈,发现有人提示:

1. Add the following to the Web.config file:

<system.data>
    <DbProviderFactories>
      <remove invariant="System.Data.SQLite"/>
      <add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".Net Framework Data Provider for SQLite" type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite, Version=1.0.57.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139" />
    </DbProviderFactories>
  </system.data>

2. Copy System.Data.SQLite.DLL AND System.Data.SQLite.Linq.dll files to the Bin directory 

根据1 的提示,我把 <add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".Net Framework Data Provider for SQLite" type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite, Version=1.0.57.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139" />这段配置,也加到生产环境的Machine.config里面,再运行测试程序,SQLite项出现在DbProviderFactories.GetFactoryClasses()的DataTable了,说明配置没有问题了。

但是运行程序,还是报错:“对类型"System.Data.SQLite.SQLiteFactory"的存储区提供程序调用"GetService"方法后,返回null。存储区提供程序可能未正常运行”。

花了一段时间研究“存储区”,无功而返。

突然发现生产环境的GAC没有System.Data.SQLite,问题是不是在这里呢?

在生产环境下v1.1.xxx下的GacUtil.exe运行之后,报错unknown。又在网上查了一下,据说是GacUtil和Framework的版本有关系。在开发机器上C:/Program Files/Microsoft SDKs/Windows/v6.0A/Bin找到一个GacUtil.exe,一看,的确这个是3.5的版本。拷贝到生产环境,注册System.Data.SQLite.DLL和System.Data.SQLite.Linq.DLL,运行程序:一切正常!大功告成!

来源于:http://blog.csdn.net/liufan76/article/details/3173282

最新文章

  1. tshark 抓包分析
  2. HDU2298 Toxophily
  3. [转]图片中的字符分割提取(基于opencv)
  4. 分享一个ASP.NET 文件压缩解压类 C#
  5. bootstrap学习总结-06 按钮
  6. 救火必备linux命令
  7. JavaScript——对this指针的新理解
  8. C各个类型的大小
  9. C程序结构
  10. ConstraintLayoutDemo【约束性布局知识梳理】【基于1.1.3】
  11. c# MD5及盐值加密
  12. python数据结构算法学习自修第一天【数据结构与算法引入】
  13. [knowledge][lisp] lisp与AI
  14. TZOJ 5225: 玩转二叉树
  15. TClientDataSet[9]: 计算字段和 State
  16. Windows8连接网络后自动弹出Bing解决方法
  17. 插件使用_kindeditor
  18. 使用Javascript实现随机字符串
  19. DNS域名解析协议
  20. 什么是ETag

热门文章

  1. vmware克隆centos修改linux&#160;mac地址
  2. python 类中__init__,__new__,__class__的使用详解
  3. 截图神器-snipaste
  4. 感谢beyond,感谢家驹
  5. [LOJ#2328]「清华集训 2017」避难所
  6. 满汉全席(banquet)
  7. 【CCF】路径解析 模拟
  8. 【转】Linux C函数库参考
  9. [openmp]使用嵌套互斥锁锁定变量
  10. envsetup.sh 与 choosecombo