wenzhao168

导航

apache下,部署.net,rdlc,水晶报表

没有写博客的爱好,但是很多技术及经验都是从其他博主那里获得的,所以理性的认为即使懒惰也应抽出时间整理,总结自己遇得到的问题,然后帮助其他遇到同样问题的朋友们及时的解决问题。

下面我总结下我这个项目中的问题。

开发环境  Framework4.0,  服务器apache, 数据库server2000,报表rdlc,水晶报表

问题1:apache下能运行.net么?

    这是理所当然的,apache对.net2.0运行的不错,之后的从看的资料来看apache在没有对.net的模块做更多的开发,因此,我开发的环境4.0是一个悲剧,幸好开发中用到4.0的模块很少,就把4.0的转成3.5了,因为2.0,3.0,3.5的内核都是2.0的,因此,apache还是能支持的了3.5的项目的,不过项目中的很多控件支持的不好,过程中控件不好用的也就挨个改了,所以还是建议大家在开发的时候尽量少用控件开发。

    具体的apache下如何配置.net环境,各位自己可以查,根据系统是32位的,还是63位的,下个插件,还有另一个模块,最重要的就是apache的配置文件的修改。这里我贴出来

   

apache .net配置
 1 # asp.net 支持
 2 # 这2条配置属于全局配置,可放在其它响应 LoadModule/AddHandler 语句块后面
 3 # 我的配置中,下面整个配置块是放在最后,未分开,这也是为了方便管理
 4 LoadModule aspdotnet_module "modules/mod_aspdotnet.so"
 5 AddHandler asp.net asax ascx ashx asmx aspx axd config cs csproj licx rem resources resx soap vb vbproj vsdisco webinfo
 6 
 7 # 下面的整段配置可以放在虚拟主机中
 8 <IfModule mod_aspdotnet.cpp>
 9 
10 # Mount the ASP.NET example application
11 # AspNetMount 语句相当于 Linux 中的 mount 命令,是把Asp程序目录挂载到一个 URL 地址
12 # 如果不是整个网站都用Asp,则不应该挂在‘/’下。如:AspNetMount /asptool "D:\\www\\Apache2\\htdocs\\aspweb"
13 # 注意:整站采用时,全局的DocumentRoot 为 "D:/www/Apache2/htdocs/aspweb"
14 AspNetMount / "C:/apache/htdocs"
15 
16 # Map all requests for /active to the application files
17 # 意思是把所有到‘/asptool’的请求映射到挂载的Asp程序目录下
18 # 我的配置中,下面一句是注释掉的
19 # Alias /asptool "D:/www/Apache2/htdocs/aspweb"
20 
21 # Allow asp.net scripts to be executed in the active example
22 <Directory "C:/Papache/htdocs">
23     Options FollowSymlinks ExecCGI
24     Order allow,deny
25     Allow from all
26     DirectoryIndex default.htm default.aspx index.html index.aspx
27 </Directory>
28 # For all virtual ASP.NET webs, we need the aspnet_client files
29 # to serve the client-side helper scripts.
30 
31 # 注意:下面两行需要对应.Net Framework安装的目录
32 AliasMatch /aspnet_client/system_web/(\d+)_(\d+)_(\d+)_(\d+)/(.*) "C:/WIN2003/Microsoft.NET/Framework/v$1.$2.$3/ASP.NETClientFiles/$4"
33 
34 <Directory "C:/Windows/Microsoft.NET/Framework/v*/ASP.NETClientFiles">
35     Options FollowSymlinks
36     Order allow,deny
37     Allow from all
38 </Directory>
39 
40 </IfModule>
41 # asp.net 支持 End.

里面的路径问题各位自己参考吧。

 

问题2:水晶报表显示小红叉的问题,及rdlc不显示的问题

项目发布后,在IIS中测试,启用的父路径,项目运行的很正常。当迁移到apache中后,水晶报表显示小红叉,rdlc不显示。一直以为是路径的问题,因此网上翻了个便,适了N中方法,终于功夫不负有心人。让我解决了,那个心情爽啊。

先说水晶报表显示小红叉的问题,既然在IIS 中,或者Vs中测试没问题了,为何发布到服务器中就不行了呢,我的总结,多半是路径问题。没引用到。所以就依次为据,展开问题调查。

我用的水晶报表是2010 的,也是根据系统位数,装两个软件就OK了,当然web.config中会自动生成相关配置,应该是生成3部分关于水晶报表的配置模块。自动生成的,而且在vs或者IIS中一方运行成功的 ,就不是配置的问题了,就转移到路径的问题。但是在项目的根目录中一定加一个(CrystalImageHandler.aspx)的页面,这个页面是一个映射,没有它,不会生成图表。既然是路径的问题,在IIS下运行没事,在apache下运行不出来,我就用(ASP.Net探针)依次运行得出结果,路径不同,IIS启用了父路径,因此可以运行,apache路径缺少个文件名,因此引用不到。我在配置文件中将
<add verb="GET" path="../CrystalImageHandler.aspx" type="CrystalDecisions.Web.CrystalImageHandler, CrystalDecisions.Web, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/>  中的path添加了"../-----",就OK了,也可以将apache的路径改成虚拟路径指向当前的网站也可以,如

1 Alias /虚拟名"D:/路径名"
2 <Directory "D:/路径名">
3     Options Indexes FollowSymLinks MultiViews     IncludesNoExec
4     AddOutputFilter Includes html
5     AllowOverride None
6     order allow,deny
7     Allow from all
8 </Directory>

  重启apache,网站运行地址  http://127.0.0.1:端口号/路径名/其它文件名,OK

然后就是rdlc不显示的问题,只有工具栏,而且抱脚本错误(未引用ajax Asp.Net应用程序框架,而且连续多抱了3,4个错误)除了大家网上查的其它问题,都处理后,依然没解决,那也多半是路径的问题了,也是vs,IIS中可以运行,apache下不行,也是用探针测了路径的问题,路径确实不同,把路径改成虚拟路径后,没问题了

 

问题3:当项目发布到服务器后,经常性的,(未能添加引用程序集****************),想必大家肯定遇到这个,这个你可以在你本机上的C:\windows\assimble\下找到程序集,拷过去就OK了,如何考呢,  告诉大家一个方法(用好压软件打开,在地址栏输入路径)

拷过去,OK,

好了,吃饭了,不说了,各位遇到如此问题还有什么不懂的地方,可以给我留言

 


 

 

posted on 2012-08-17 13:05  wenzhao168  阅读(578)  评论(0编辑  收藏  举报