知识大全 ASP.NET预编译Web应用程序规避调用延迟

Posted 路径

篇首语:你可以忘掉苦难,但不能忘却艰辛;你可以忘掉伤疤,但不能忘却耻辱。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 ASP.NET预编译Web应用程序规避调用延迟相关的知识,希望对你有一定的参考价值。

ASP.NET预编译Web应用程序规避调用延迟  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  ASP NET x的开发人员常常听到用户抱怨首次调用应用程序的时候会碰到初始化延迟 毕竟 初次请求会引发一个系列过程 包括运行库初始化 分析 把ASPX页面编译成中间语言 把方法即时编译成本地代码等等

  自从ASP NET面市以来 开发人员一直都在要求(微软)出台一个解决办法 而ASP NET 利用预编译提供了一个有效的解决方案

  预编译选项

  在首次启动应用程序的时候 ASP NET会动态地分析和编译所有的ASP NET文件(aspx页面) 运行环境要对编译的结果进行缓冲 以便更好地服务未来所有的请求

  在服务器重启或者Web服务器重启之后 第一次启动应用程序也意味着这一过程要重新开始 而且 对应用程序任何文件的改变都会被系统检测到 而在文件发生改变之后首次运行应用程序也会让这一过程再次发生

  很多Web开发人员都很讨厌这种初始化延迟 而预编译通过(预先)编译应用程序避免了这种延迟

  命令行

  通过安装在 NET框架 里的aspnet_piler exe程序就能够启动预编译 它位于框架安装目录下(版本号会根据安装的框架的版本而有所不同) 下面就是这个程序默认的路径

  C \\\\\\\\Microsoft NET \\\\Framework\\\\v \\\\aspnet_piler exe

  您可以用 ?这个命令参数查看该程序的所有参数列表 下面我就解释一下一些可用的参数

  m 这个参数表示您将使用完整的 应用程序将被预编译的IIS元数据库路径 IIS元数据库的路径是/LM/W SVC/ /Root/应用程序名

  v 使用需要预编译Web应用程序的虚拟IIS路径 虚拟路径的格式是 /应用程序名

  p 使用需要预编译Web应用程序的物理IIS路径 它是包括驱动器名和指向应用程序目录的完整路径 举个例子c \\\\inetpub\\\\root\\\\应用程序名 v这个参数必须和p一起用 所以编译器能够解析任何应用程序的根参考

  f 表示目标目录是否要被覆蓋

  u 用来设置预编译完的应用程序是可以更新的 这表示所有的标记文件(ASPX ASCX等等)都可以在目标目录里进行更新

  targetDir 用于预编译应用程序文件的目标目录 下面的命令用虚拟路径和指定的目标路径预编译了一个应用程序 aspnet_piler exe –v /应用程序名 c \\\\目标目录名

  如果没有指定目标目录 那么结果文件会被放在ASP NET的临时文件目录里 就像在ASP NET运行库在首次调用应用程序的时候处理编译一样 临时目录默认的路径如下

  c Windows\\\\Microsoft NET\\\\Framework\\\\v \\\\Temporary >\\\\Windows\\\\Microsoft NET\\\\Framework\\\\v \\\\Temporary ASP NET Files\\\\应用程序名

  预编译另外一个好处是能够捕捉在应用程序启动阶段发生的任何错误 错误会显示在工具里 但是不会终止编译过程

  隐藏源代码

  预编译的另外一个副产品是能够隐藏任何或者所有的应用程序源代码 这意味着其他的开发人员需要利用反编译程序或者ilasm才能够取得您的代码 这就行了——预编译让您能够以二进制文件的形式分发应用程序

  目标目录里没有源代码 App_Code文件夹里的所有类都被编译成一个或者多个二进制文件 放到bin目录下 目标目录下不会有源代码文件( cs vb js等等) 此外 所有的主页面文件也会被编译到bin目录下 作为隐藏文件 ASPX ASCX和ASHX文件的所有代码和标记 以及相关的代码隐藏文件都被放在bin目录下的一个或者多个程序集里

  隐藏源代码是毁誉参半 其他的开发人员无法以任何形式查看或者更改应用程序——即使是Web页面标记也不行 而另外一方面 对应用程序的任何改变(不论大小)都要求改变原始的源代码 重新编译和重新部署 这可能是一个十分耗时的过程 所以并不一定适用于所有的应用程序

  可更新命令参数(u)让您能够取代这个默认的行为 使用这个参数意味着所有的标记文件 (ASPX ASCX等等)都要包括在预编译过程的输出里 一旦应用程序被部署 这些文件仍然能够用于编辑和更新 在应用程序被应用之后 小的布局问题可以通过源文件来处理 所以这是一个非常理想的参数

  Visual Studio的支持

  在使用Visual Studio 开发基于ASP NET的应用程序时 预编译是可选的 发布Web站点(Publish Web Site) 菜单选项让您能够把网站作为一个预编译应用程序推到另一个位置 此外 上面还有一个复选框让您设置可更新选项

  总结

cha138/Article/program/ASP/201311/21842

相关参考

知识大全 ASP.NET入门教程 12.2.1调用Web服务

ASP.NET入门教程12.2.1调用Web服务  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&n

知识大全 在ASP.NET Atlas中调用Web Service

在ASP.NETAtlas中调用WebService  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

知识大全 ASP.NET 3.5核心编程之AJAX Web Service的调用

ASP.NET3.5核心编程之AJAXWebService的调用  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起

知识大全 预编译 aspnet

 时web项目可以编译成一个dll然后发布该dll和aspxascx页面即可到了里web项目的编译则稍有不同  首先vs里有两种类型的web程序website和webpr

知识大全 jsp预编译问题

  这个方法是到目前为止进行JSP预编译最方便的途径(flickaswitch途径)他有许多指出来毫无意义的缺点如果一个错误在JSP的编译期间或在部署(或重新部署)的时候发生Web应用程序的预编译将会

知识大全 asp.net、IIS和Web应用程序

asp.net、IIS和Web应用程序  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一个Web

知识大全 寄宿多个Web 站点和 ASP.NET 应用程序

寄宿多个Web站点和ASP.NET应用程序  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  目标 

知识大全 为Asp.net应用程序设置构建Web服务

为Asp.net应用程序设置构建Web服务  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一什么

知识大全 ASP.NET MVC上的Web应用

ASP.NETMVC4框架:ASP.NETMVC上的Web应用  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来

知识大全 Web应用程序ASP.NET开发电子商务网站购物车

Web应用程序ASP.NET开发电子商务网站购物车  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!