05 2014 档案

摘要:当处于内核模式的http.sys接收到来自用户的请求之后,会将请求放入队列中。那处于用户模式的w3wp进程如何从内核模式的队列中取出请求呢?I/O完成端口(IOCP,I/O Completion Port)闪亮登场。w3wp专门用了一个线程池干这个——W3TP,可以通过process explorer捕捉到它的身影。 阅读全文
posted @ 2014-05-31 21:29 dudu 阅读(5524) 评论(3) 推荐(0) 编辑
摘要:一、IIS:应用程序池队列(Application pool queue,位于HTTP.SYS)。这是请求到达IIS后遇到的第一个队列,http.sys收到请求后会将请求放入对应的应用程序池队列,这样可以减少上下文的切换。需要注意的是应用程序池队列虽然是给w3wp进程用的,但它存在于http.sys的内存区。 阅读全文
posted @ 2014-05-30 21:49 dudu 阅读(5628) 评论(4) 推荐(4) 编辑
摘要:在默认情况下,http.sys kerne mode cache只缓存静态文件。那我们如何让ASP.NET OutputCache直接使用http.sys kerne mode cache?这样缓存的处理性能会更好。解决方法是在IIS的Output Caching设置中,添加一条针对.aspx扩展名的使用kernel-mode caching的缓存规则。 阅读全文
posted @ 2014-05-29 12:59 dudu 阅读(1021) 评论(6) 推荐(1) 编辑
摘要:万万没有想到!当初为了解决使用负载均衡时记录客户端IP地址的问题,在IIS URL Rewrite Module中增加一条URL重写规则。竟然造成http.sys的内核模式缓存(kernel mode caching)被IIS URL Rewrite Module禁用,禁用理由是重写规则中用到了影响缓存安全的服务器变量。 阅读全文
posted @ 2014-05-28 16:01 dudu 阅读(7990) 评论(11) 推荐(4) 编辑
摘要:一项新技术或者一个新特性,只有你用它解决实际问题后,才能真正体会到它的魅力,真正理解它。也期待大家能够多分享解一些解决实际问题的内容。在我们遭遇“黑色30秒”问题的过程中,切身体会到了异步的巨大作用,于是开始逐步地用async/await改造现有代码。 阅读全文
posted @ 2014-05-08 11:10 dudu 阅读(28466) 评论(38) 推荐(23) 编辑
摘要:最近一直被C#调用Haskell时的“尝试读取或写入受保护的内存”问题所困扰,而且困在其中,越陷超深,无法自拔,差点弃用C#解决我们面临的问题。问题是这样的,只要在Haskell代码中对字符串进行操作,在C#调用时就会引发异常。 阅读全文
posted @ 2014-05-07 14:25 dudu 阅读(11797) 评论(31) 推荐(23) 编辑
摘要:Haskell的代码:readMarkdown与writeHtmlString是pandoc中的函数,newString的作用是将String转换为IO CString。运行C#代码之后,出现错误:Attempted to read or write protected memory. This is often an indication that other memory is corrupt. 阅读全文
posted @ 2014-05-05 12:17 dudu 阅读(13733) 评论(2) 推荐(0) 编辑
摘要:系统环境:Windows Server 2008 R2,Haskell Platform 2013.2.0.0,ghc 7.6.3,cabal 1.16.0。操作步骤:1. 安装Windows版Haskell Platform;2. 编写Haskell代码保存于.hs文件中;3. 编写C代码保存于.c文件中;编写cabal配置文件保存于.cabal文件中。 阅读全文
posted @ 2014-05-05 10:04 dudu 阅读(2164) 评论(3) 推荐(3) 编辑
摘要:1. 运行命令cabal install glib时出现错误;2. 运行命令cabal install gtk2hs-buildtools;3. 重新运行命令cabal install glib,出现新的错误;4. 下载/安装GTK+ all-in-one bundle;5. 重新运行命令cabal install glib,出现新的错误。 阅读全文
posted @ 2014-05-04 15:17 dudu 阅读(1568) 评论(0) 推荐(1) 编辑
摘要:所用环境:Windows Server 2008 + ghc 7.6.3(Haskell Platform 2013.2.0.0自带的) + pandoc 1.12.4。操作步骤:1. 安装Haskell Platform。2. 安装pandoc,安装命令:cabal install pandoc。3. 在命令行中运行ghci。4. 引用pandoc的相应模块。5. 调用pandoc的readMarkdown与writeHtmlString函数。 阅读全文
posted @ 2014-05-03 12:21 dudu 阅读(993) 评论(0) 推荐(0) 编辑