赛迪网 > IT技术 热点推荐 > 文章
  IT资讯搜索
 
IT产品搜索
[程序开发][网管世界][网络安全][数据库技术]
[操作系统][嘉宾聊天·在线访谈][活动集锦]
[精彩专题][Symantec专区][订阅IT技术周刊]
[开发论坛][网管论坛][安全论坛][数据库论坛]
[操作系统论坛][Sybase专区][IBM dW技术专区]
[病毒求助][病毒与漏洞播报][文档·源码下载]

将ASP.Net项目移植到Linux的配置过程

发布时间:2008.04.18 02:33     来源:赛迪网    作者:lynn

目的:

把公司用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://httpd.apache.org).

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/www/htdocs路径上,在浏览器输入URL:http://localhost/directoryname/page.aspx结果有些实例可以运行有些则不可以,而且还以为在Visual Studio 2005上开发的程序直接放到那个路径上就可以直接运行,结果不行,错误提示应该是说找不到路径。

那些不能运行的实例可能由于虚拟机的问题,所以就用一台直接安装上openSuSE系统,果然实例都可以运行,但自己在Visual Studio 2005上做的程序还是不行。分析原因得出:当初想在Visual Studio 2005上做的程序是不是不能直接拿到Linux上用而还要做些什么修改之类(实际上并不是这样),/srv/www/htdocs是用于apache服务器的路径,要做相应的配置(一头雾水)。所以就用mono自带的web服务器xsp,mono的官方网站就有介绍包括用法,http://www.mono-project.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://localhost:8080/page.aspx

值得注意的是C#1.0用xsp而C#2.0就用xsp2。结果用vs2005做的一个小程序可以顺利运行,用Production_System系统做测试时一般页面正常显示但BillBoard的页面就不能显示,没想到解决办法就尝试用apache。

有关apache安装和配置的中文资料有很多,但提及到用于.net的并没多少,只有零星的一些,所以只好先熟悉一下如何配置apache服务器。比较好的资料有Red Hat Linux 9网络服务的第7章配置Apache服务器和Apache HTTP Server Version 2.2 文档。最后结合http://www.mono-project.com/Mod_mono或

http://gonzalo.name/blog/files/mod_mono.html的资料完成配置。下面写出具体如何配置。

主要是配置apache2文件夹里的httpd.conf文件,直接右击选Open with “gedit”打开进行配置比较方便,当然也可以用命令来配。附上httpd.conf文件的中文翻译http://blog.csdn.net/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>


[ 发表评论 ] 字体[  ] [ 打印 ] [ 进入博客 ] [ 进入论坛 ]  [ 推荐给朋友 ]
  相关文章
· 剖析Linux 2.6内核移植—应用程序篇 (04-18) · SUSE Linux Enterprise 11 UNIX移植技术 (04-18)
· Veritas把存储工具移植到SuSE Linux (04-18) · Novell 提供Netware用户移植SuSE Linux新方法 (04-18)
· 微软Novell加强Win Server与SUSE互操作性 (04-18) · 英特尔开源项目助Novell等Linux高效节能 (04-18)
· SUSE Linux Enterprise绿色IT的新概念 (04-18) · 中国处1.0时代 绿色IT将推动虚拟化进程 (04-18)
· Linux之父:Linux为绿色节能环保做好准备 (04-18) · 国外评论:Linux比Vista更“绿色” (04-18)
  客户需求反馈表
* 姓  名:
更多资料  了解方案  认识厂商
* 单位名称:
* 联系电话:
* 电子邮件:
  赛迪推荐  
  手机·资费 ·新品·导购·评测·手机资费·宽带
手机搜索  诺基亚 N73 MOTO Z6
  IT产品 ·笔记本·台式机·服务器·打印·投影
IT产品搜索 
  IT技术 ·开发·网管·安全·数据库·操作系统
  信息化 ·热点·专题·访谈·周刊·方案案例
· 网站建设市场重新洗牌 一卡通引领革命潮流
· 北京加快信息化建设 医保一卡通年底前启动
· ERP案例分析 SaaS带来冲击 IT服务商面临挑战
· 通方期货CRM解决方案 房地产行业CRM解决方案
  IT博客 ·曾剑秋·项立刚·Java学习·网管
  IT技术论坛 ·开发·网管·安全·数据库·系统