RSS 2.0 Feed
2008-07 Entries
摘要:       阅读本博客前,建议阅读我前一篇博客:IIS5、IIS6、IIS7的ASP.net 请求处理过程比较  这样知识会比较连贯。        对于 IIS6、IIS7,  每个应用程序池都会创建一个 W3WP.exe 进程。  但是, 并不是所有情况都是一个应用程序池对应一个 W3WP.exe 进程。 Web Garden , 或者一些异常发生时候,就会一个 应用程序池对应多个 W3WP.exe 进程。          Web Garden 指的是一个应用程序可以在多个进程(w3wp.exe)中来执行,一次请求使用其中的一个。用这个的主要目的是提高程序的可用性。当其中一个进程发生错误,那么也不会影响其他进程。发生错误的进程可以根据规则关闭,而其他的进程则可以继续工作。        需要注意的是:一般使用 InProc HttpSessionState / HttpApplicationState / 静态变量来储存关键信息 的程序是不支持 Web Garden的。          由于应用程序池会在没有请求的时候定时回收,或者发生错误的时候,自动重新建立一个处理进程 W3WP.exe 进程。如果你中大运,你可能会看到没有配置 Web Garden 时, 一个应用程序池对应多个 W3WP.exe 进程, 如这篇文章中提到的 http://www.eggheadcafe.com/forumarchives/inetserveriis/Feb2006/post25881024.asp 。         IIS 6 (Win2003 )中查看某个应用程序池对应那个 W3WP.exe 进程,可以使用如下命令,输出结果类似如下: C:\WINDOWS\system32>cscript iisapp.vbs Microsoft (R) Windows Script Host Version 5.6 Copyright (C) Microsoft Corporation 1996-2001. All rights reserved. W3WP.exe PID:......[阅读全文]

posted @ | Feedback (0) | Filed Under [ .net 编程心得 技术随笔 网站开发管理相关内容 .net 3.5 ]

摘要:ASP.NET是一个非常强大的构建Web应用的平台,它提供了极大的灵活性和能力以致于可以用它来构建所有类型的Web应用。 绝大多数的人只熟悉高层的框架如: WebForms 和 WebServices --这些都在ASP.NET层次结构在最高层。 这篇文章的资料收集整理自各种微软公开的文档,通过比较 IIS5、IIS6、IIS7 这三代 IIS 对请求的处理过程, 让我们熟悉 ASP.NET的底层机制 并对请求(request)是怎么从Web服务器传送到ASP.NET运行时有所了解。通过对底层机制的了解,可以让我们对 ASP.net 有更深的理解。 IIS 5 的 ASP.net 请求处理过程 对图的解释: IIS 5.x 一个显著的特征就是 Web Server 和真正的 ASP.NET Application 的分离。作为 Web Server 的IIS运行在一个名为 InetInfo.exe 的进程上,InetInfo.exe 是一个Native Executive,并不是一个托管的程序,而我们真正的 ASP.NET Application 则是运行在一个叫做 aspnet_wp 的 Worker Process 上面,在该进程初始化的时候会加载CLR,所以这是一个托管的环境。 ISAPI:  指能够处理各种后缀名的应用程序。 ISAPI 是下面单词的简写 :Internet Server Application Programe Interface,互联网服务器应用程序接口。 IIS 5 模式的特点: 1、首先,同一台主机上在同一时间只能运行一个 aspnet_wp 进程,每个基于虚拟目录的 ASP.NET Application 对应一个 Application Domain ,也就是说每个 Application 都运行在同一个 Worker Process 中,Application之间的隔离是基于 Application Domain 的,而不是基于Process的。 2、其次,ASP.NET  ISAPI 不但负责创建 aspnet_wp Worker Process,而且负责监控该进程,如果检测到 aspnet_wp 的 Performance 降低到某个设定的下限,ASP.NET  ISAPI......[阅读全文]

posted @ | Feedback (1) |

摘要:问题:当一个正在执行中的ASPX页面执行到一半的时候,浏览器中你关闭了这个页面,服务器端对应的这个页面的代码仍然在执行么? 答案:除非你代码里面做了特殊判断,否则仍然正在执行。   注意点: 1、客户端显示页面的时候,后台已经执行完了的页面对象早已经不存在了。当然这时候谈不上服务器段执行不执行的问题了。 2、页面还没有返回,处于等待状态的时候。关闭ASPX页面,才会涉及到上面提到的服务器端仍然在执行的情况。 3、客户端关闭的时候根本不向服务器发送指令。 4、除非你代码里面做了特殊判断,这里的特殊判断指用 if(!Response.IsClientConnected) 来检测状态而用代码终止运行。 下面的简单代码就是演示关闭页面后,看是否仍然在执行? 你可以在这个页面打开后, 还没有返回任何信息的时候把这个页面关闭,然后看指定目录下是否有对应文件被创建并填写内容。 protected void Page_Load(object sender, EventArgs e) { StringBuilder txt = new StringBuilder(); txt.AppendLine(); txt.AppendLine(DateTime.Now.ToString("u")); txt.AppendLine("asvd"); ......[阅读全文]

posted @ | Feedback (0) | Filed Under [ .net 编程心得 网站开发管理相关内容 ]

摘要:             工作九年了,网站相关的开发工作也干了八年多。负责带领团队也好几年了。面试和带领刚工作的人也不少了。其中的优秀者不少,但是大多数都存在下面提到的几个认识误区。把这些问题提出来,希望对刚参加工作没有多久的程序员们有所帮助,少走弯路。         公司招你进来,其实最重要的就是看到你的工作能力和工作态度是可以接受的。             工作能力指你能满足他们的工作期望,或者在可接受的时间范围内,经过培训后,可以满足这个工作期望。             工作态度指你能有些做职员的基本素质。       这个道理应该所有人都清楚。但是到实际事情时候就经常犯迷糊。下面几点是经常会出问题的地方:   1、不经测试,Review,就认为自己工作完成了。        你的代码或者应用一旦被别人Review ,或者进行试用。这时候你代码的好坏,或者功能是否在各种场景下是否可用,都会影响你这个人在上级及同事眼里的可信任度。        代码书写的规范,性能的高质量,各种功能在各个场景都可用,则表示你这个人是完全可信的。下次上级给你分派任务的时候,就可以给你更多的自由度来发挥。长此以往,前途和钱途自然就随手可得。         反之,代码不规范,功能好些场景不可用。这只能让上级或同事觉得你不可信任。每次都需要处理你带来的这些问题,说恶心点就是你每次拉完大便都没擦屁股,每次都得你的同事和上级帮你擦屁股。数次都这样后,上级或同事下次跟你沟通的时候就会觉得你这个人不可信任,一件事情必须反复多次强调,总觉得你还会作出问题。你的信用已经非常危险了。        你在别人眼里的信用就这样被你慢慢透支了。透支到一定程度,走人吧。整个团队的效率会因为你而变慢(每个人跟你沟通的成本都会影响到他本人的产出),你不走人谁走人。   2、最短可接受的工作时限        你有没有统计过,公司分派给你一个工作时候,上级指定的这项工作计划做多久的预计,跟你自己的预计有多大差异?        如果你预计时间大于上级给的工作计划时间,同时上级没有增派人手进行相关工作。除了BT的领导外,那只有一种情况:上级对你的工作态度非常不满,认为你的薪水对应的工作能力不是这么点。        对于刚工作的,更多的是你表现出来的工作能力在公司的平均工作能力之下。同时公司觉得你对工作没有表现出足够的热情。 一个能力在平均水平下面,又缺乏工作激情的人,他的前途在那里??        如果这个人还没有表现出几个月后能达到平均水平之上的希望,为啥会留这样一个人呢?   3、工作能力不等于技术水平        我曾看到过有人抱怨说大公司的员工也不过是这技术水平, 这么简单的技术问题都不会。我自己早期也有这样想法,后来发现是不对的。        不论大公司还是小公司,要得是解决问题的工作能力。 我的曾经手下就有好几个技术水平很牛的,但是作出来的应用却一次次返工的。为啥,工作能力这些非技术因素他们做的很不好。        工作能力的非技术因素包括的很多: 责任心,表现就是对自己写出来的代码有一定要让人放心的责任; 沟通能力,一个典型的表现就是需求不理解或者需求不明时,及时得跟相关人沟通,而不是自己先按自己想法实现,造成代码写完后再返工的恶果等等。        技术水平低,但是解决问题能力强的,我也碰到过一些人。 工作的能力更重要的是这些非技术的工作能力,而不是技术水平。技术人员很容易技术水平高,但是非技术的工作能力差。 这是很糟糕的。         4、发展潜力,学习能力       公司使用的技术不可能一直不变,一直不变的公司只能慢慢被市场淘汰。这就要求员工能不断的学习新的知识,并应用到工作中来。       要想不会出现几年后,自己发现跳槽找个工作都没人要,赶快学习吧。       坚持,是一个人最难做到的。 但是不坚持,那就等着灭亡吧。   ......[阅读全文]

posted @ | Feedback (5) | Filed Under [ 非技术随笔 网站开发管理相关内容 ]