我正在使用IIS开发一些Web应用程序.我曾经相信每个应用程序都应该有一个入口点.但似乎Web应用程序没有.
我已经阅读了许多关于如何在IIS下构建ASP.NET应用程序的书籍和文章,但它们并没有解决我想知道的最明显和最基本的问题.
那么有谁能告诉我如何启动Web应用程序?传统桌面应用程序和Web应用程序在工作范例方面的区别是什么,例如启动和终止逻辑.
非常感谢.
我目前的理解是:
当某个请求到达时,IIS将提取请求中包含的URL.我想IIS必须保留某种内部表,将URL映射到磁盘上相应的物理目录.我们以下面的URL为例:
http://myhost/webapp/page1.aspx
Run Code Online (Sandbox Code Playgroud)
在上述内部表的帮助下,IIS将在磁盘上找到page1.aspx文件.然后检查此文件并找到代码隐藏代码文件.然后将构造适当的页面类实例,并且将以预定义的顺序调用其在代码隐藏文件中定义的方法.调用方法系列的输出将是发送给客户端的响应.
URL只是一个标识符,用作上述内部表的索引.使用此索引,IIS(或任何类型的Web服务器技术)可以找到资源的物理位置.然后使用一些提示(例如文件扩展名如*.aspx),Web服务器知道应该使用什么处理程序(例如asp.net ISAPI处理程序)来处理该资源.选择的处理程序将知道如何解析和执行资源文件.
所以这也解释了为什么Web服务器应该是可扩展的.
这取决于您使用的语言和框架,但总的来说,有许多入口点将绑定到 HTTP 请求(例如通过 URL)。当服务器收到与这些绑定之一匹配的请求时,就会执行绑定的代码。
还可能存在基于请求的其他条件执行的各种过滤器链和拦截器。服务器启动时可能还会执行一些设置代码。最终,仍然有一个入口点 - 服务器的 main() 函数 - 但从 Web 应用程序的角度来看,重要的是请求绑定。
我从未使用过 IIS,但我假设没有“查找表”,而是一些查找规则。我将向您介绍在 Apache 服务器上调用 .jsp 页面的过程,这应该是基本相同的过程。
serveRequest(request, response)并对其进行编译(如果尚未这样做)serveRequest函数,该函数现在是用户代码的入口点这是最基本的系统——基于资源的servlet(即.jsp 或.aspx 文件)。当使用 MVC 框架等技术时,绑定规则变得更加复杂,但基本概念是相同的。
| 归档时间: |
|
| 查看次数: |
6154 次 |
| 最近记录: |