- .Net Framework - C/C++/VC/GNU »
搜索:

       今天发现一种极好的整合IIS和JSP的方法,毫无疑问java在windows下运行比在linux运行效率要高(大约4%),同比IIS比Apache的IO能力强,在不考虑了lisence的问题下,笔者一直在考虑在windows下部署java的生产环境,尽管笔者的很大程度的工作是管理的维护linux服务器,但是发现很多时候windows还是最好的选择,当然是在得到一样优秀的维护和管理的前提下,一直以来很头疼的就是Tomcat和IIS的整合,在windows下肯定不会考虑使用apache,apache在windows下的表现太差了。笔者使用了2个月时间仔细研读和修改apache 2.29版的windows版源代码(哈哈,不专业了apache的源代码是可移植C++不分版本)试图优化apache的IO。 最终不得不放弃,Apache的构架上不如IIS,在windows上表现始终不如意,所以还是考虑用IIS整合tomcat.

       IIS整合Tomcat的传统方式是JK,通过8009端口做代理,这样做缺点很多,当然优点也很多,优点我就不说了。这样的缺点是实际上要socket一次,笔者认为除非在一台IIS+多个Tomcat,或者IIS和tomcat不在一台服务器上时才有必要使用。在大多数情况,也就是IIS和Tomcat在同一台服务器上时,完全可以用一种高效的办法.

      答案其实就是asp.net里的ihttphandle, 使用asp.net的ISAPI handle劫持要转发的页面(图方便,有达人直接写一个C++的ISAPI也行,.net基于jit效率也没得说),直接把他rewrite到8080端口上,也就是实际上IIS和Tomcat没有任何通信。图片、js、html全部IIS处理,这个小程序只处理URL。也就是我写的这个JSP ihttphandle直接取tomcat 的response 作为IIS的response。

      下载 JSP_iHttpHandle.dll (.net 3.5)  拷贝到站点的bin目录。

      修改web.config添加:

<!-- JSP ihttpHandle 配置 -->
<add path="*.jsp" verb="GET,POST" type="com.w3cool.web.jsp.TomcatRequestHandler" />
<add path="*.xhtml" verb="GET,POST" type="com.w3cool.web.jsp.TomcatRequestHandler" />
<add path="/servlet/*" verb="GET,POST" type="com.w3cool.web.jsp.TomcatRequestHandler" />
<!-- JSP ihttpHandle 配置 -->

然后在 站点属性  -> "home directory" ->Configuration ->

把.jsp .xhtml你要tomcat处理的内容加在aspnet_isapi.dll上,当然也可以图方便设定一个WildCard

j1

好了。现在就可以看看效果

查看全文:" 一种更高效率的ISAPI整合IIS与Tomcat_JSP的方式(非jk) " »

Tags: '' '' '' ''

作者: 大恐龙 - 分类: ' .Net Framework ' ' Java/JSP ' ' 系统|System ' ' 项目|Dino'Projects ' - - 评论 ( 4 ) - 引用通告 ( 0 ) - 查看次数: (0)

.Net的运行效率问题

       CLR只执行本机的机器代码。有两种方式产生本机的机器代码:实时编译(JIT)和预编译方式(产生native image)。详细了解了JIT,基本上每个人都知道的是,所有.Net语言都将被编译成为一个叫做IL汇编的中间语言。但是计算机是如何执行这个中间代码的,却是很多人不知道,甚至理解错误了的。

       JIT是.NET程序运行的重要部件之一,全称是即时编译器。我刚才说的误解,就是很多人(绝对不是少数,问了很多c++程序员,10个有9个这种想法)都以为JIT其实就是跟JVM差不多的东西,是一个Interpreter,在运行时读取IL汇编代码,然后模拟成x86代码(也就是俗称的虚拟机)。但是事实上,.NET使用的是更为高级的技术。 .Net程序被加载入内存以后,当某段IL代码被第一次运行的时候,JIT编译器就会将这段IL代码,全部编译成本地代码,然后再执行。这也就是为什么.NET程序第一次运行都启动很慢的原因! 随.NET库,微软还附带了一个工具,可以事先将.NET程序所有的IL代码都编译成本地代码并保存在缓存区中,这样一来,这个程序就跟c++编译的一模一样了,没有任何区别,运行时也可以脱离JIT了(这里不要混淆了,这里不是说可以脱离.NET库,而是说不需要在进行即时编译这个过程了)。所以,.NET和Java运行效率还是有些区别的,当然在执行高IO实时程序时也许仍然不如C++,因为还有在.net framework里面的appDomain的限制。

       Java JIT也曾经是Borland的亮点,.net的JIT想法极有可能就来自Borland,但是在架构了由于不用考虑平台的问题大大优于.net.

       所以在编译系统中,笔者的主张还是"原生才是硬道理"。

作者: 大恐龙 - 分类: ' .Net Framework ' - - 评论 ( 0 ) - 引用通告 ( 0 ) - 查看次数: (0)

Iconv for windows - 编码转换

最近剽窃一个开源项目项目,把东西往自己的项目里面拖的时候发现,TMD原来是欧洲人写的,用的 windows-1252的编码,怎么办。还好熟悉iconv呵呵。拷到linux下一转就好了,但是SCP来来去去很麻烦,决定写一个windows下的iconv,和linxu的iconv的参数不一样的是-s 代表搜索子目录:

具体用法:
-f From CodePage 源编码
-t To Codepage 目标编码
-s SubDirectory 递归检索子目录
-v Verbose 显示转化日志
eg:
iconv *.bat -p C:\\MyProject -f Windows-1252 -t utf-8 -v -s

*.bat 文件名一定要放在第一个参数呢。呵呵

下载文件:
iconv.exe

iconv.exe

Tags: ''

开源一个的Asp.net公共上传文件程序

程序很小,目的是为了解决所有web应用图片和文章上传

思路是这样的:任何一个web应用程序提交的都是一个表单,表单内有文件域。
这里这个上传文件拦截到这个form提交的所有文件域,处理上传,并将文件域改名为同名的文本域,文本域的内容就是成功上传的URL,如果失败返回为空,然后redirect到目标的信息页。样就很容易实现img.xxxxxx.com的效果,也能购方便的将论坛博客的上传分离,所要做的就是将上传的action改为该程序的上传处理地址,默认为 /i/up.aspx
file.JPG原理图

配置文件:


<uploaderconfig>

<applications><!--可以有多个-->

<uploaderapplication>

    <id>bbs_uploadfile</id>

    <refererdomain>bbs.cnhubei.com</refererdomain>

    <refererurl>http://bbs.cnhubei.com/post_upload.asp(.*)</refererurl> <!--调用合法的URL,可以使用正则表达式-->

    <successurl></successurl><!--成功后返回页面-->

    <errorurl></errorurl><!--出现错误返回页面-->

    <domain>img.cnhubei.com</domain><!--目标URL-->

    <localfolder>D:\Host\img.cnhubei.com</localfolder>

    <allowedextensions>.gif|.jpg|.jpeg|.png|.bmp|.tif|.iff|.swf|.swi|.mid|.wav|.mp3|.rmi|.cda|.avi|.mpg|.mpeg|.ra|.ram|.wov|.asf</allowedextensions>

    <allowedextensionssize>350000|350000|350000|350000|350000|350000|35000|750000|35000|50000|35000|50000|50000|50000|50000|50000|50000|50000|50000|50000|50000</allowedextensionssize><!--限制文件上传大小和上传的扩展名,上下对应-->

    <folderparse>^UploadFile|yyyyMM|dd|HH</folderparse><!--文件存放规则-->

</uploaderapplication>

</uploaderconfig>

 

bbs.cnhubei.com使用动网论坛,修改后上传文件均改为 img.cnhubei.com 分离图片后论坛的运行效率得到有效的改观

源代码下载:  DotNetCommonUpload.rar

Tags: '' '' ''

ContentType - 备忘

application/activemessage
application/andrew-inset
application/applefile
application/atomicmail
application/dca-rft
application/dec-dx
application/mac-binhex40 hqx
application/mac-compactpro cpt
application/macwriteii
application/msword doc
application/news-message-id
application/news-transmission
application/octet-stream bin dms lha lzh exe class
application/jsp jsp
application/oda oda
application/pdf pdf
application/postscript ai eps ps
application/powerpoint ppt
application/remote-printing
application/rtf rtf
application/slate
application/wita
application/wordperfect5.1
application/x-bcpio bcpio
application/x-cdlink vcd
application/x-compress Z
application/x-cpio cpio
application/x-csh csh
application/x-director dcr dir dxr
application/x-dvi dvi
application/x-gtar gtar
application/x-gzip gz
application/x-hdf hdf
application/x-httpd-cgi cgi
application/x-java-jnlp-file jnlp
application/x-koan skp skd skt skm
image/x-xpixmap xpm
image/x-xwindowdump xwd

application/x-sv4cpio sv4cpio
application/x-sv4crc sv4crc
application/x-tar tar
application/x-tcl tcl
application/x-tex tex
application/x-texinfo texinfo texi
application/x-troff t tr roff
application/x-troff-man man
application/x-troff-me me
application/x-troff-ms ms
application/x-ustar ustar
application/x-wais-source src
text/dtd dtd
text/xsl xsl
text/xml XML ent cat style
application/jsp jsp
application/zip zip
audio/basic au snd
audio/mpeg mpga mp2
audio/x-aiff aif aiff aifc
audio/x-pn-realaudio ram
audio/x-pn-realaudio-plugin rpm
audio/x-realaudio ra
audio/x-wav wav
chemical/x-pdb pdb xyz
image/gif gif
image/ief ief
image/jpeg jpeg jpg jpe
image/png png
image/tiff tiff tif
image/x-cmu-raster ras
image/x-portable-anymap pnm
image/x-portable-bitmap pbm
image/x-portable-graymap pgm
image/x-portable-pixmap ppm
image/x-rgb rgb
image/x-xbitmap xbm
application/x-latex latex

message/external-body
message/news
message/partial
message/rfc822
multipart/alternative
multipart/appledouble
multipart/digest
multipart/mixed
multipart/parallel
text/html html htm
text/plain txt
text/richtext rtx
text/tab-separated-values tsv
text/x-setext etx
text/x-sgml sgml sgm
video/mpeg mpeg mpg mpe
video/quicktime qt mov
video/x-msvideo avi
video/x-sgi-movie movie
x-conference/x-cooltalk ice
x-world/x-vrml wrl vrml
text/vnd.wap.wml wml
application/vnd.wap.wmlc wmlc
text/vnd.wap.wmlscript wmls
application/vnd.wap.wmlscriptc wmlsc
image/vnd.wap.wbmp wbmp
text/css css
text/vnd.sun.j2me.app-descriptor jad
application/java-archive jar
video/3gp 3gp
video/3gpp mp4
application/x-mif mif
application/x-netcdf nc cdf
application/x-sh sh
application/x-shar shar
application/x-stuffit sit
作者: 大恐龙 - 分类: ' .Net Framework ' - - 评论 ( 0 ) - 引用通告 ( 0 ) - 查看次数: (0)
- 后一个分类: C/C++/VC/GNU