技术开发 频道

详解如何在Mono中创建ASP.NET应用程序

  Mono配置文件

  /etc/mono/1.0/machine.config

  /etc/mono/2.0/machine.config

  Mono GAC文件

  /usr/lib/mono/gac/

  MonoDevelop安装路径

  /usr/lib/monodevelop/

  安装apache2和mod_mono

  与安装Mono一样,将apache2和apache2-mod_mono安装上。

  开发ASP.NET或Web Serives程序

  打开MonoDevelop,新建一个ASP.NET程序,并报存在/home/mazhi/cmd目录下

  配置apache2

  打开apache2的config文件:/etc/apache2/httpd.conf,在里面加上以下行:

  Include /etc/apache2/mod_mono.conf

  并添加以下行:

Alias /website /home/mazhi/cmd
MonoApplicationsConfigFile website /home/mazhi/cmd/website.webapp
MonoServerPath website "/usr/local/bin/mod-mono-server2"
<Location /website>
Allow from all
Order allow,deny
SetHandler mono
MonoSetServerAlias website
</Location>

  启动Apache服务

  sudo /sbin/service apache2 restart

  注意:在apache部署asp.net程序时,asp.net程序的所有层次的文件夹和文件的other权限都必须配置Execute权限,例如将/home/mazhi/cmd所有层次的文件夹和文件的other权限都配置Execute权限

  另外,如果在程序中使用log4net的时候,将包含log文件的所有层次的文件夹的other权限配置write权限

  访问Oracle数据库的问题

  如果ASP.NET程序访问Oracle数据库,存在以下2种可能的情况,1是ASP.NET与Oracle安装在同一台机器上,2是ASP.NET与Oracle安装在不同的机器上。如果是第2种情况,则需要安装 instantclient的Oracle数据库访问组件。在Oracle的官方网站下载basic-11.1.0.70-linux-x86_64.zip或oracle-instantclient11.1-basic-11.1.0.7.0-1.x86_64.rpm进行安装。例如安装在/opt/oracle/目录中。

  添加Oracle数据连接库文件

  安装后,/opt/oracle/oradb/home/lib 存放Basic和sqlplus的各种库文件,在/etc/ld.so.conf文件中添加路径/opt/oracle/oradb/home/lib,还有就是在此目录下为libclntsh.so.11.1库文件建个软连接

  ln -s libclntsh.so.11.1 libclntsh.so

  让代码连接动态库的时候能找到库文件。再执行ldconfig命令

  配置Oracle数据库环境变量

  系统级配置在/etc/profile文件中

  用户级配置在/root/.bash_profile或/home/someuser/.bash_profile文件中

  根据需要,在以上2个文件中的1个文件中添加以下行:

ORACLE_BASE=/opt/oracle/oradb; export ORACLE_BASE
ORACLE_HOM
=$ORACLE_BASE/home;export ORACLE_HOME
ORACLE_SID
=imapdb;export ORACLE_SID
NLS_LAN
=American_america.zhs16gbk;export NLS_LANG
PATH
=$ORACLE_HOME/bin:$PATH;export PATH
TMP
=/opt/oracle/tmp
TMPDIR
=/opt/oracle/tmp
export TMP TMPDIR
umask
022

 

  解决连接Oracle数据库出现Could not allocate the Oracle environment错误

  Mono ASPX链接Oracle数据库出错“Could not allocate the Oracle environment“

  修改mod-mono-server的脚本文件,用gedit打开/usr/bin/mod-mono-server2文件,添加以下行:

ORACLE_BASE=/opt/oracle
ORACLE_HOME
=$ORACLE_BASE/9.2
NLS_LANG
=POLISH_POLAND.EE8MSWIN1250
LD_LIBRARY_PATH
=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
LIBPATH
=$ORACLE_HOME/lib
LD_LIBRARY_PATH_32
=$ORACLE_HOME/lib32
PATH
=$PATH:$ORACLE_HOME/bin
LD_ASSUME_KERNEL
=2.4.19
LANG
=pl_PL.iso88592
export ORACLE_BASE ORACLE_HOME ORACLE_SID LD_LIBRARY_PATH LD_LIBRARY_PATH_32 PATH LD_ASSUME_KERNEL NLS_LANG LIBPATH
LANG
before line
exec /usr/local/bin/mono $MONO_OPTIONS "/usr/local/lib/mono/2.0/mod-mono-server2.exe" "$@"

 

  这样就可以连接到Oracle数据库了。

0
相关文章