将ASP.Net项目移植到Linux的配置过程 — IT技术
目的:
把公司用Visual Studio 2005开发的项目通过mono移植并运行在Linux平台上。
前言:
以前没接触过Linux,更不要说在Linux上做什么移植和用mono做项目(更重要的这些都是英文的东西,T_T英语水平不好)。好在网络部之前就装好一台Linux的机器,系统是openSuSE,因为openSUSE是Novell的,所以估计里面的mono环境已集成在里面,所以直接拿来用就行了,网上也有关于mono, xsp,mod_mono等的安装教程。
Mono的1.2.5版本没有ASP.NET的Desiger,但网上说可以在vs上开发移植到Linux上用。
环境:
openSuSE, mono, xsp2,mod_mono,apache2,moma
说明:xsp是mono自带的一个简单的web服务器,apache则是一个功能强大的web服务器(http服务器),mod_mono是一个模块用于apache(apache是模块化设计),关于apache后面会详细介绍。
英文资料是这样说的:
Mod_Mono is an Apache 1.3/2.0/2.2 module that provides ASP.NET support for the web's favorite server, Apache (http://http://www.zjjv.com//).
XSP is a standalone web server written in C# that can be used to run your ASP.NET applications with minimal effort.
配置过程:
之前在openSuSE的虚拟机上运行其自带的实例(桌面上的ASP.NET.Source文件夹,里面有一个index.html文件,算是个帮助文档),实例代码放到/srv/http://www.zjjv.com///XSP,具体命令和执行如下。
# cd 路径
路径 # xsp2
Listening on address: 0.0.0.0
Root directory: 路径
Listening on port: 8080
Hit Return to stop the server.
浏览器输入URL:http://http://www.zjjv.com//的并没多少,只有零星的一些,所以只好先熟悉一下如何配置apache服务器。比较好的资料有Red Hat Linux 9网络服务的第7章配置Apache服务器和Apache HTTP Server Version 2.2 文档。最后结合http://http://www.zjjv.com///Mod_mono或
http://http://www.zjjv.com///linuxnote/archive/2004/08/23/82289.aspx。
1、在httpd.conf文件加入,把mod_mono模块包含到apache里
Include etc/apache2/conf.d/mod_mono.conf
2、在mod_mono.conf文件的节点里加入
LoadModule mono_module /usr/lib/apache2/mod_mono.so
这个用于C#2.0
MonoServerPath /usr/bin/mod-mono-server2
3、在httpd.conf文件添加如下配置,好像代码只能放在xsp/test目录下,原因不明,以后再研究。
Alias /test "/usr/lib/xsp/test"
MonoApplications "/test:/usr/lib/xsp/test"
<Location /test>
SetHandler mono
AllowOverride None
Order allow,deny
Allow from all
</Location>
4、保存文件然后重启服务器,命令如下,注意apache2也是用于C#2.0。
# service apache2 restart
5、打开浏览器输入http://服务器IP/test/index.aspx,会看到XSP的欢迎页面(这只是xsp上的测试实例用于apache的应用,如果要用于自己的开发的项目还要做些调整)。
6、将开发的源码文件放到/test:/usr/lib/xsp/test下,假设目录为/usr/lib/xsp/test/Production_System,其主页文件为Login.aspx,访问地址http://IP/test/Production_System/Login.aspx,奇怪的是此时报页面错误.没办法了,修改httpd.conf,将test虚拟目录直接指到这里(注意:发现这里目录名字不能有”_”符号,所以下面就去掉了)。
Alias /test "/usr/lib/xsp/test/ProductionSystem "
MonoApplications "/test:/usr/lib/xsp/test/ProductionSystem "
<Location /test>
SetHandler mono
AllowOverride None
Order allow,deny
Allow from all
</Location>
访问http://IP/test/Login.aspx正常显示,至于为什么报页面错误,还不知道是啥原因。而之前在xsp上不能显示的BillBoard页面在这里可以显示(还有些细节的问题等待解决),至于原因有待研究。最后整个Production_System看起来移植到Linxu是可行的,但要完美的运行起来还有细节问题要解决,而用moma测了一下Production_System的dll文件也出现了一些issues,例如外部调用dll问题。
整个的配置过程就是这样,有点乱,其中很多的问题没解决。看起来在Linux上安装和配置软件是件复杂的事情,有待继续研究。
补充:指定任意路径的项目和令mod_mono处理多个程序
Alias /test "/usr/lib/xsp/test/ProductionSystem"
Alias / Hello_Mono "/usr/mypages/Hello_Mono"
MonoApplications "/test:/usr/lib/xsp/test/ProductionSystem"
MonoApplications "/Hello_Mono:/usr/mypages/Hello_Mono"
<Location /test>
SetHandler mono
AllowOverride None
Order allow,deny
Allow from all
</Location>
<Location / Hello_Mono>
SetHandler mono
AllowOverride None
Order allow,deny
Allow from all
</Location>
字体[ 进入论坛] [ 推荐给朋友]