iis如何识别Web应用程序?

bal*_*569 3 .net iis web-applications

我在采访中被问到这个问题......

1.如何识别我们要求的Web应用程序?

2.如何识别Web应用程序是用哪种语言开发的?

任何人都可以详细解释它们......

slu*_*ter 8

我不打算介绍Web应用程序的内容,因为这不是您的问题,因此在整个答案中,我将交替使用术语Web应用程序虚拟目录.如果您想了解有关IIS上的Web应用程序的更多信息,那么来自IIS上的官方MS站点:了解IIS 7上的站点,应用程序和虚拟目录的这篇文章将会有所帮助.虽然标题确实说IIS7,但它也深入研究IIS6.


我们要求的Web应用程序

保持简单,您对服务器的请求包含虚拟目录,或者IIS已经配置为将请求映射到特定的虚拟目录.如果您请求的URL如下所示:

http://someServer/myWebSite/default.aspx
Run Code Online (Sandbox Code Playgroud)

那个url 的myWebSite部分是虚拟目录,IIS确切知道如何处理它,因为它直接映射到文件系统上的文件夹.但就像我说的那样,这只是一种简单的方法,而且您可能正在使用它来在您的开发机器或公司内部网上访问您自己的Web应用程序.还有另一种从url中找到虚拟目录的方法 - 使用主机头.当您通过互联网向基于(基于IIS)的网站发出请求时,它最有可能与数十个甚至数百个其他网站托管在同一个Web服务器上.在这种情况下,主机头绑定用于将请求映射到特定的网站/ Web应用程序.您可以在本文中阅读有关主机标头的信息:HOWTO:IIS 6请求处理基础知识,第2部分 - 网站,虚拟目录和Web应用程序.


Web应用程序语言

页面的语言在页面本身中指定(在aspx或ascx文件中).每当第一次启动应用程序池工作进程或重新编译(重新启动)网页时,都会使用页面或控件中指定的语言作为使用哪个编译器的指南.然后将编译后的代码保存在临时存储中,直到文件发生变化,需要重新编译或再次回收工作进程.

如果它是预编译的,那么就没有必要知道页面语言,因为它已经被编译成一种称为MSIL(Microsoft中间语言,或更正确的CIL,通用中间语言)的中间语言,然后将此代码JIT编译为本机代码在被执行之前.(JIT编译:简单的解释,维基解释,稍微更硬核的解释).

如果Web应用程序已经编译,那么它已经是本机机器语言,因此根本不需要编译.