ASP.NET MVC的WebSite模式(with mvc membership)
[ 大恐龙 发表于 2008年12月 5日 21:04 ]
一直极其讨厌web application,感觉不干净,不符合个人喜好完美纯净的代码的癖好,再加上不是单页程序集,性能也大打折扣。所以这次在决定用asp.net MVC写这个网站的时候花了一点时间移到Web site模式下面来。
其实不是很麻烦,修改Web Site的web.config文件,在<httpHandlers>处添加MvcHttpHandler,在<httpModules>处添加UrlRoutingModule。IIS7可以配置一下WebServer,和web application模式下的webconfig一样。所有的CodeBehind都修改为CodeFile,Global.asax要删除重建一下,因为web site网站模式下结构并不一样,把原来那个RegisterRoutes方法拷贝进去即可。然后拷贝Content和Views两个文件夹复制到Web Site的根目录下,把Controllers和Models两个文件夹复制到Web Site的App_code文件夹下。或者另外再建一个工程也可以。
然后就是集成了一下codeplex上的asp.net mvc membership. 有了一个简单的用户管理界面,管理员用户asministrator 密码n2!1jLR8bL]{1: 。

下载这个压缩文件,添加到你的解决方案即可。
Tags:
'
asp.net
' '
membership
' '
mvc
'
一种更高效率的ISAPI整合IIS与Tomcat_JSP的方式(非jk)
[ 大恐龙 发表于 2008年9月 9日 17:34 ]
今天发现一种极好的整合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
好了。现在就可以看看效果
.Net的运行效率问题
[ 大恐龙 发表于 2008年8月29日 22:03 ]
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. 所以在编译系统中,笔者的主张还是"原生才是硬道理"。 |
Iconv for windows - 编码转换
[ 大恐龙 发表于 2007年12月18日 14:16 ]
最近剽窃一个开源项目项目,把东西往自己的项目里面拖的时候发现,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
Tags:
'
iconv
'
开源一个的Asp.net公共上传文件程序
[ 大恐龙 发表于 2007年12月 6日 02:50 ]
程序很小,目的是为了解决所有web应用图片和文章上传
思路是这样的:任何一个web应用程序提交的都是一个表单,表单内有文件域。
这里这个上传文件拦截到这个form提交的所有文件域,处理上传,并将文件域改名为同名的文本域,文本域的内容就是成功上传的URL,如果失败返回为空,然后redirect到目标的信息页。样就很容易实现img.xxxxxx.com的效果,也能购方便的将论坛博客的上传分离,所要做的就是将上传的action改为该程序的上传处理地址,默认为 /i/up.aspx
原理图
配置文件:
<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
ContentType - 备忘
[ 大恐龙 发表于 2007年11月21日 18:20 ]
| 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 |
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 |














![[Valid RSS]](http://www.w3cool.com//images/valid-rss.png)
![Validate my Atom 1.0 feed [Valid Atom 1.0]](http://www.w3cool.com//images/valid-atom.png)






[大恐龙
[zi] 于 09-09-23 发表: 功能很不错,就是有的只读到一半就不给读了,一次最多能读多少字呢...
[ll] 于 09-09-23 发表: 可惜了 我测试俄语 不能朗读如果要是能的话就太好了...
[zi] 于 09-09-18 发表: 您好,偶然看到这个在线语音合成系统,很不错,只是我想在flex页面引用,不知道怎么用...
[陈涛] 于 09-08-11 发表: 看起来不错,感谢分享!明天就这样做!...
[大恐龙
[UniUni] 于 09-05-29 发表: 很棒的插件,我成功安装了,但总是有“语音合成服务忙”的提示。...
[大恐龙
[dfdfsdfdf] 于 09-05-23 发表: 希望更新一下语音包,个人觉得“科大讯飞”的语音包很人性化...
[eudy] 于 09-04-25 发表: 东西好是好,但价格太吓人。对于小网站承担不起!希望能分等级会员。我的要求只要新闻不要读一半就没得全部...
[大恐龙
[jackiewong] 于 09-04-08 发表: 老大,怎么玩不转啊!我按上面的方法引用后,语音提示总是说“语音合成服务忙,请稍候再试”,要不就是“由...
[白建明] 于 09-03-28 发表: 偶然的机会,发现了163.com 用的就是Nginx。 访问某一网页是,当时其返回了一串乱码到网...
[大恐龙