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
并添加以下行:
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_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_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数据库了。