最近做了一个小应用,使用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

SQLite to Asp.net Entity Framework 部署问题的更多相关文章

  1. LinqToSql和ASP.NET Entity FrameWork 中使用事务

    ASP.NET Entity FrameWork中: int flag = -1; if (this.URPmanagementEntities1.Connection.State != System ...

  2. ASP.NET Entity Framework with MySql服务器发布环境配置

    首先,.net应该自带Entity Framework,所以服务器只要有对应版本的.net Framework就OK! 我们在开发环境中一般会直接使用edmx来管理应用程序与数据库的交互操作,所有与数 ...

  3. 对ASP.NET Entity FrameWork进行单元测试

    添加一个测试用的类库:将Web.config中的connectionstrings节点下的东东复制一份到刚添加的类库的app.config下 使用NUint+TestDriven.net进行测试: 如 ...

  4. Working with Data » 使用Visual Studio开发ASP.NET Core MVC and Entity Framework Core初学者教程

    原文地址:https://docs.asp.net/en/latest/data/ef-mvc/intro.html The Contoso University sample web applica ...

  5. MVC中使用EF(1):为ASP.NET MVC程序创建Entity Framework数据模型

    为ASP.NET MVC程序创建Entity Framework数据模型 (1 of 10) By  Tom Dykstra |July 30, 2013 Translated by litdwg   ...

  6. Entity Framework+SQLite+DataBaseFirst

    Entity Framework+Sqlite+DataBaseFirst 本篇主要是说明在vs中配置Sqlite,及使用Entity Framework DataBaseFirst模式. 如果没有下 ...

  7. [转]Creating an Entity Framework Data Model for an ASP.NET MVC Application (1 of 10)

    本文转自:http://www.asp.net/mvc/overview/older-versions/getting-started-with-ef-5-using-mvc-4/creating-a ...

  8. ASP.NET Core 配置 EF SQLite 支持 - ASP.NET Core 基础教程 - 简单教程,简单编程

    原文:ASP.NET Core 配置 EF SQLite 支持 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core 配置 EF SQLite 支持 上一章节我有提 ...

  9. Model和Entity Framework

    Model和Entity Framework 上一节:ASP.NET MVC 5 入门教程 (4) View和ViewBag 下一节:ASP.NET MVC5 + EF6 入门教程 (6) View中 ...

随机推荐

  1. 【Palindrome Partitioning】cpp

    题目: Given a string s, partition s such that every substring of the partition is a palindrome. Return ...

  2. BugKu 2B+基于python的opencv的安装-------CTF 盲水印的套路

    BugKu杂项-2B 下载图片后,binwalk下跑一跑,发现有个zip,分离. 值得一提的是,这个zip是伪加密的. 但是你在分离的时候,伪加密的图片也给你分离出来了.这两个图片2B和B2肉眼看起来 ...

  3. Python-S9-Day101 Vue-cli

    01 昨天内容回顾 02 音乐播放器计算属性方法和组件创建 03 Vue-cli项目生成 04 模板中组件的使用 01 昨天内容回顾 1.1 {{xxx}}模板语法,插值,简单的运算: 1.2 指令系 ...

  4. 实战项目——获取图片中的GPS位置信息和拍摄时间

    今天突然看到有人写过获取图片中位置信息的程序.我觉得很有趣,也就自己实践了一下,研究了一下 话不多说,先上代码 #!/usr/bin/env python3 # -*- coding: utf-8 - ...

  5. CodeForces Round #521 (Div.3) A. Frog Jumping

    http://codeforces.com/contest/1077/problem/A A frog is currently at the point 00 on a coordinate axi ...

  6. POJ 3104:Drying(二分)

    题目大意:你有一台机器可以烘干衣物,现在有n个衣物需要烘干,每件衣服都有一个值表示含水量,烘干机一秒可以烘干k滴水,一件衣服不在烘干机上时会每秒自动蒸发一滴水,求最少用多少时间烘干所有衣服. 分析: ...

  7. TTL 和 RS-232

    下面详细讲解下面这三种的区别 USB转TTL串口板(常用芯片PL2303,CH340) USB转RS-232串口线 TTL转RS-232串口板,RS-232转TTL串口板(常用芯片MAX3232,MA ...

  8. 【bzoj3585】mex 线段树 mex,sg

    Description 有一个长度为n的数组{a1,a2,…,an}.m次询问,每次询问一个区间内最小没有出现过的自然数. Input 第一行n,m. 第二行为n个数. 从第三行开始,每行一个询问l, ...

  9. vscode设置背景图片

    最近在知乎上看见有人设置了vscode编辑器的背景图片,觉得很新鲜,就尝试以一下,倒是成功了. 1.首先在vscode扩展中,找到background这个插件,快捷键Ctrl+shift+x 2.完成 ...

  10. iOS笔记-(缓存机制的理解与实现)

    (1)运行中的现象: 在iOS开发中,会遇到:同一NSURL被多次请求,会造成用户的流量浪费,程序的响应速度不够快.比如说,从服务器上请求一张图片,请求100次,下载的结果都是一样的. (2)解决方法 ...