ASP.NET的IIS5与IIS6.0有什么区别

这篇文章给大家分享的是有关ASP.NET的IIS5与IIS6.0有什么区别的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

自从有了html与http,就有了浏览器与Web服务器,并有了Web应用,最初的交互模式是这样的:

ASP.NET的IIS5与IIS6.0有什么区别

该模式很好地运行了很多年。然而,随着计算机应用的发展,人们越来越不满足于只有静态内容的页面,而由某种机制动态产生html等代码的需求越来越迫切,于是,很多技术就应运而生,ASP.NET就是这样一种技术。从本质上讲,ASP.NET就是一种服务器端动态产生html、css、javascript等浏览器认识的代码的技术。ASP.NET的交互模式如下:

ASP.NET的IIS5与IIS6.0有什么区别

由该图可知,ASP.NET必须解决两大问题,一是如何与Web服务器(一般就是指IIS)进行交互,二是如何根据不同请求产生不同的html等代码。

***个问题,根据IIS版本(5,6.0,7.0)的不同,ASP.NET具有不同的进程模式与不同的交互模式,该问题不是本篇要讲述的。一般来说,大家不必关心该问题,而且要了解该问题,又必须清楚IIS各个版本的模型,而各个版本又各有各的不同,因此,我基本不准备讲述这个问题,大家有兴趣的话,可以自行搜索相关资料。

我们来讨论第二个问题,这里首先要说明的是,因为IIS7.0进程模式的变化比较大,我也没去了解IIS7.0的模型,因此,以下讲述及以后讲述将只针对IIS5与IIS6.0.我们有理由认为,针对IIS5与IIS6.0的讲述一般同样适用于IIS7.0.

先且按下该问题不表,我们来看一段请求玉帝把大象放到冰箱里的代码(为什么不是上帝?因为我中华不归上帝管),请大家先跟着我的思路来,别急,别急。

  1. usingSystem;  

  2.  

  3. namespaceConsoleApplication3  

  4. {  

  5. classProgram  

  6. {  

  7. staticvoidMain(string[]args)  

  8. {  

  9. Emperoremperor=newEmperor();  

  10. while(true)  

  11. {  

  12. Console.WriteLine("首先给玉帝准备好大象和冰箱。");  

  13.  

  14. Console.WriteLine("输入大象的名字:");  

  15. stringelephantName=Console.ReadLine();  

  16. Console.WriteLine("输入大象的体重:");  

  17. intintelephantWeight=int.Parse(Console.ReadLine());  

  18. Console.WriteLine("输入冰箱的名字:");  

  19. stringrefrigeratorName=Console.ReadLine();  

  20.  

  21. Elephantelephant=newElephant()  

  22. {  

  23. Name=elephantName,  

  24. Weight=elephantWeight 

  25. };  

  26. Refrigeratorrefrigerator=newRefrigerator()  

  27. {  

  28. Name=refrigeratorName 

  29. };  

  30.  

  31. Contextcontext=newContext()  

  32. {  

  33. Elephant=elephant,  

  34. Refrigerator=refrigerator 

  35. };  

  36.  

  37. emperor.ProcessRequest(context);  

  38.  

  39. Console.WriteLine("是否要玉帝继续把大象关进冰箱里?");  

  40. stringanswer=Console.ReadLine();  

  41. if(answer=="n")  

  42. break;  

  43. }  

  44. }  

  45. }  

  46.  

  47. classEmperor  

  48. {  

  49. publicvoidProcessRequest(Contextcontext)  

  50. {  

  51. Elephantelephant=context.Elephant;  

  52. Refrigeratorrefrigerator=context.Refrigerator;  

  53.  

  54. //***步,打开冰箱门  

  55. refrigerator.IsOpen=true;  

  56. Console.WriteLine(string.Format("玉帝打开了{0}的冰箱门。",
    refrigerator.Name));  

  57.  

  58. //第二步,把大象放进去  

  59. refrigerator.Content=elephant;  

  60. Console.WriteLine(string.Format("玉帝把大象{0}放到冰箱{1}里了。",
    elephant.Name,refrigerator.Name));  

  61.  

  62. //第三步,关上冰箱门  

  63. refrigerator.IsOpen=false;  

  64. Console.WriteLine(string.Format("玉帝关上了{0}的冰箱门。",
    refrigerator.Name));  

  65. }  

  66. }  

  67.  

  68. classElephant  

  69. {  

  70. publicstringName{get;set;}  

  71. publicintWeight{get;set;}  

  72. }  

  73.  

  74. classRefrigerator  

  75. {  

  76. publicstringName{get;set;}  

  77. publicboolIsOpen{get;set;}  

  78.  

  79. privateobjectm_Content;  

  80. publicobjectContent  

  81. {  

  82. get{returnthis.m_Content;}  

  83. set  

  84. {  

  85. if(!this.IsOpen)  

  86. thrownewInvalidOperationException("冰箱门未打开,无法放进东西。");  

  87. if(this.m_Content!=null)  

  88. thrownewInvalidOperationException("冰箱内有东西,无法放进新的东西。");  

  89.  

  90. this.m_Content=value;  

  91. }  

  92. }  

  93. }  

  94.  

  95. classContext  

  96. {  

  97. publicElephantElephant{get;set;}  

  98. publicRefrigeratorRefrigerator{get;set;}  

  99. }  

感谢各位的阅读!关于“ASP.NET的IIS5与IIS6.0有什么区别”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

原创文章,作者:745907710,如若转载,请注明出处:https://blog.ytso.com/230366.html

(0)
上一篇 2022年1月15日
下一篇 2022年1月15日

相关推荐

发表回复

登录后才能评论