Linux 部署ASP.NET SQLite 应用 的坎坷之旅 附demo及源码
Linux 部署ASP.NET SQLite 应用 的坎坷之旅。文章底部 附示例代码。
有一台闲置的Linux VPS,尝试着部署一下.NET 程序,结果就踏上了坑之路,不过最后算是完美解决问题,遂记录如下。
环境:Linux系统为centos 6 mono 版本 mono-3.2.1 jexus版本 jexus-5.6.4
一.安装环境
1.安装mono
首先安装系统环境:
yum -y install gcc gcc-c++ bison pkgconfig glib2-devel gettext make libpng-devel libjpeg-devel libtiff-devel libexif-devel giflib-devel libX11-devel freetype-devel fontconfig-devel cairo-devel
下载mono 安装:
wget http://download.mono-project.com/sources/mono/mono-3.2.1.tar.bz2 tar -jxvf mono-3.2..tar.bz2 cd mono-3.2. ./configure –prefix=/usr make 此时出现以下错误 ../src/.libs/libeglib.a(libeglib_la-gunicode.o): In function `monoeg_g_get_charset’:
/root/mono-3.2./eglib/src/gunicode.c:: undefined reference to `locale_charset’
collect2: ld returned exit status
make[]: *** [test-eglib] Error
make[]: Leaving directory `/root/mono-3.2./eglib/test’
make[]: *** [all-recursive] Error
make[]: Leaving directory `/root/mono-3.2./eglib’
make[]: *** [all] Error
make[]: Leaving directory `/root/mono-3.2./eglib’
make[]: *** [all-recursive] Error
make[]: Leaving directory `/root/mono-3.2.′
make: *** [all] Error 修改 eglib/config.h vi eglib/config.h 将#define HAVE_LOCALCHARSET_H 1 替换为 #define HAVE_LOCALCHARSET_H 0 make make install mono –V 这一步显示信息代表安装成功
2.安装jexus
cd /tmp
wget linuxdot.net/down/jexus-5.6..tar.gz
tar -zxvf jexus-5.6..tar.gz
cd jexus-5.6.
sudo ./install
jexus 相关配置说明:http://www.linuxdot.net/bbsfile-3084
二.代码部分
有两种方式可以在Linux上使asp.net 操作sqlite。
由于Linux自带sqlite 环境,所以无需安装环境。而Windows没有需要安装sqlite,或者下载sqlite3.dll。
本文示例采用WebForm 开发。
1.使用Mono自带的 Mono.Data.Sqlite
使用方法和Ado.Net 相同。这里就不做过多讲解。
主要在链接字符串部分 "Version=3;Data Source={文件路径}"
2.使用NuGet中的sqlite-net (最终采用的方法,比较完美)
Install-Package sqlite-net
github: https://github.com/praeclarum/sqlite-net
wiki: https://github.com/praeclarum/sqlite-net/wiki
安装好后就可以开发。wiki 里面讲解了一些详细的用法。
我只是实现一些简单的增删查改操作。
使用方法:
[PrimaryKey, AutoIncrement] //主键加自增
public int ID { get; set; }
更多方法参见wiki
基本的一些代码
public partial class Demo : System.Web.UI.Page
{
private SQLiteConnection con = null;
protected void Page_Load(object sender, EventArgs e)
{
var path = Server.MapPath("~/App_Data/Demo.db");
con = new SQLiteConnection(path);
//con.CreateTable<User>();//创建表 只需执行一次 if (!string.IsNullOrEmpty(Request["id"]))
{
con.Delete<User>(Request["id"]);
Response.Redirect("Demo.aspx");
} var cmd = con.CreateCommand("select * from User");
var list = cmd.ExecuteQuery<User>();
foreach (var item in list)
{
Response.Write(string.Format("{0}-{1}-{2} <a href='Demo.aspx?id={3}'>删除</a><br>", item.Name,item.PassWord,item.CreateTime,item.ID));
}
} protected void BtnAdd_Click(object sender, EventArgs e)
{
var rand = new Random().Next(, );
User user = new User();
user.Name = "ceshi"+rand;
user.PassWord = ""+rand;
user.CreateTime = DateTime.Now;
con.Insert(user);//添加数据
Response.Redirect("Demo.aspx");
}
}
最终发布的程序采用winscp上传到vps中的。完美在linux上运行。
运行截图:

上面的系统标识为linux。
三.总结
asp.net mvc 5.0版本及以上在linux mono 环境下支持不是特别好。
感谢@张善友 提醒: Windows不区分大小写,Linux严格区分大小写。所以路径须保持大小写一致。
最后感谢网络上的各位前辈的无私分享。特别感谢 园子@张善友的分享。
源码地址:https://github.com/linezero/sqlitedemo
参考链接: http://www.cnblogs.com/shanyou/p/3322811.html
http://www.jexus.org/
http://www.linuxdot.net/
如果你觉得本文对你有帮助,请点击“推荐”,谢谢。
Linux 部署ASP.NET SQLite 应用 的坎坷之旅 附demo及源码的更多相关文章
- Linux部署ASP.NET 5 (vNext)
原文:Linux部署ASP.NET 5 (vNext) ASP.NET 5 (vNext) Linux部署 引言 工欲善其事,必先利其器. 首先,我们先明确下以下基本概念 Linux相关 Ubun ...
- Linux下使用FreeTDS访问MS SQL Server 2005数据库(包含C测试源码)
Linux下使用FreeTDS访问MS SQL Server 2005数据库(包含C测试源码) http://blog.csdn.net/helonsy/article/details/7207497 ...
- 阿里云 Windows Server 2012 r2 部署asp.net mvc网站 平坑之旅
做了多年的Web开发工作,网站部署也不在话下,可每次部署却并不是十分顺利,将本次在阿里云服务器上部署asp.net mvc网站遇到的问题记录如下. 平台是阿里云ECS,操作系统是 Windows Se ...
- 转载 :Linux有问必答:如何在Debian或Ubuntu上安装完整的内核源码
http://linux.cn/article-5015-1.html 问题:我需要为我的Debian或Ubuntu下载并安装完整树结构的内核源码以供编译一个定制的内核.那么在Debian或Ubunt ...
- 【asp.net】Linux 部署 asp.net core 项目
Net sdk官网LINUX配置地址:https://www.microsoft.com/net/core#windows 参考:http://www.07net01.com/2016/08/1638 ...
- Linux 部署 ASP.NET Core 的一些问题记录
异常错误: 关闭 IP6 #修改 vi /etc/sysctl.conf # 添加如下三条设置 net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.co ...
- Linux学习(二十)软件安装与卸载(三)源码包安装
一.概述 源码包安装的优点在于它自由程度比较高,可以指定目录与组件.再有,你要是能改源码也可以. 二.安装方法 步骤 1.从官网或者信任站点下载源码包 [root@localhost ~]# wget ...
- Asp.Net使用加密cookie代替session验证用户登录状态 源码分享
首先 session 和 cache 拥有各自的优势而存在. 他们的优劣就不在这里讨论了. 本实例仅存储用户id于用户名,对于多级权限的架构,可以自行修改增加权限字段 本实例采用vs2010编写 ...
- 【转载】CentOS 7部署ASP.NET Core应用程序
看了几篇大牛写的关于Linux部署ASP.NET Core程序的文章,今天来实战演练一下.2017年最后一个工作日,提前预祝大家伙元旦快乐.不扯淡,直接进入正题.您有任何问题请在评论区留言. 1.环境 ...
随机推荐
- PyAutoGUI 简介
转载来自: https://muxuezi.github.io/posts/doc-pyautogui.html http://blog.topspeedsnail.com/archives/5373 ...
- POCO库——Foundation组件之核心Core
核心Core: Version.h:版本控制信息,宏POCO_VERSION,值格式采用0xAABBCCDD,分别代表主版本.次版本.补丁版本.预发布版本: Poco.h:简单地包含了头文件Found ...
- postgresql数据库备份和恢复
PostgreSQL自带一个客户端pgAdmin,里面有个备份,恢复选项,也能对数据库进行备份 恢复(还原),但最近发现数据库慢慢庞大的时候,经常出错,备份的文件过程中出错的几率那是相当大,手动调节灰 ...
- 在Asp.Net MVC 中如何用JS访问Web.Config中appSettings的值
应用场景: 很多时候我们要在Web.Config中添加appSettings的键值对来标识一些全局的信息,比如:调用service的domain,跳转其他网站页面的url 等等: 那么此时就涉及到了一 ...
- HDU 1848 SG函数博弈
Fibonacci again and again Problem Description 任何一个大学生对菲波那契数列(Fibonacci numbers)应该都不会陌生,它是这样定义的:F(1 ...
- CSS实现小三角小技巧
<style> .box{ width: 20px; height: 20px; background-color: #424; border: 10px solid #9C27B0; b ...
- iOS应用九宫格算法
1.框框横向间隔为:( "界面的总宽度"-"界面每行的控件的宽度" * "每行要现实的列数(这里是3)") / ("列数 + ...
- 恶心的content
getBaseContent getApplicationContent ...
- Haxe是何物?
最近对haxe很感兴趣,用一种语言统一所有的语言和平台,野心很大. 详细的介绍园子里已有大神发过,地址在这里:http://www.cnblogs.com/xiaotie/archive/2012/0 ...
- 关于jquery简单操作简单表格
最近在摸索jquery中,想着学习过程中还是记下点自己的东西比较好,不管是日后自己查阅,亦或是对于他人有些许帮助. 也是一件两全其美的事情了. 下面我就简单 贴上自己的html中重要部分了. 具体实现 ...