ubuntu+mono+PetaPoco+Oracle+.net 程序部署_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > ubuntu+mono+PetaPoco+Oracle+.net 程序部署

ubuntu+mono+PetaPoco+Oracle+.net 程序部署

 2017/9/19 17:38:18  GYY_顽石  程序员俱乐部  我要评论(0)
  • 摘要:前言:将windows下开发的.net控制台程序(连接Oracle数据库)部署到ubuntu下步骤记录2017-09-19实验所用机器为虚拟机Ubuntu16.04amd64安装Mono环境首先添加Mono安装源:vi/etc/apt/sources.list.d/mono.list添加内容:debhttp://download.mono-project.com/repo/debianwheezymain保存后运行apt-getupdate,可能会出现错误提示:W:GPGerror:http
  • 标签:程序 .net Ubuntu mono ORA net Oracle

前言:将windows 下开发的 .net 控制台程序(连接Oracle数据库)部署到 ubuntu 下步骤记录  2017-09-19

实验所用机器为虚拟机Ubuntu16.04  amd64

安装Mono环境

  首先添加Mono安装源:

vi /etc/apt/sources.list.d/mono.list

  添加内容:

deb http://download.mono-project.com/repo/debian wheezy main

  保存后运行 apt-get update ,可能会出现错误提示:

W: GPG error: http://download.mono-project.com wheezy Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY A6A19B38D3D831EF

  运行以下命令添加key:

sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com A6A19B38D3D831EF

  再次运行 apt-get update ,更新完成后运行 apt-get install mono-complete 即可安装最新版本的Mono,安装完成后运行 mono -V 查看Mono版本

安装Oracle Client

  1. 下载Oracle client   (oracle-instantclient11.2-basic-11.2.0.1.0-1.x86_64.rpm)http://www.oracle.com/technetwork/cn/topics/linuxx86-64soft-095635-zhs.html

    2. 安装alien,和依赖包

    sudo apt-get install alien

    sudo apt-get install libaio1

   3. 使用alien吧rpm包转换成deb包,并且安装:

    sudo alien -i oracle-instantclient12.2-basic-12.2.0.1.0-1.x86_64.rpm

    4.安装完后,类库会放到 /usr/lib/oracle/版本号/client/lib/ ,需要做一个软连接,否则Mono找不到需要的共享库

    sudo ln -s /usr/lib/oracle/12.2/client64/lib/libclntsh.so.12.1 /usr/lib/oracle/12.2/client64/lib/libclntsh.so 

          5. 更新ldconfig设置:

    在 /etc/ld.so.conf.d目录下新建 oracle-client.conf  , 输入Oracle Client 类库的路径, /usr/lib/oracle/12.1/client/lib

    别忘了执行  sudo ldconfig

     6.在服务器上执行:select userenv('language') from dual;  获取服务器的字符集

    查看客户端字符集,在终端下执行:

    echo $NLS_LANG

     修改客户端字符集:

    sudo gedit /etc/environment

    在environment 文件中增加以下内容:

    NLS_LANG="SIMPLIFIED CHINESE_CHINA.AL32UTF8"

    export NLS_LANG

    重新启动操作系统即可。

 

修改程序

  1.PetaPoco源码修改:

    PetaPoco报空对象引用 的错误,修改PetaPoco.cs中下面代码:

    public override void PreExecute(IDbCommand cmd) 

    { 

        //注掉下面一行,修改为下面的代码。Command对象里不存在"BindByName"的属性,此处会报错 

        //cmd.GetType().GetProperty("BindByName").SetValue(cmd, true, null); 

       PropertyInfo bindByNameInfo = cmd.GetType ().GetProperty ("BindByName"); 

        if (bindByNameInfo!=null) { 

            bindByNameInfo.SetValue (cmd, true, null); 

         } 

    }

  2. 添加 System.Data.OracleClient.dll 引用

   3. 数据库连接字符串修改为

     <add name="xxx" providerName="Oracle.ManagedDataAccess.Client" connectionString="Data Source=(DESCRIPTION=        (ADDRESS_LIST=(ADDRESS=    (PROTOCOL=TCP)(HOST=xxx)(PORT=1521)))        (CONNECT_DATA=(SERVICE_NAME=xxxx)));User Id=ivrdb_hainan;PassWord=root;" />

运行程序

  mono xxx.exe

 

上一篇: 曝贾跃亭还债1亿|供应商:真的是吓人,乱写 下一篇: 没有下一篇了!
发表评论
用户名: 匿名