ASP.NET Web项目发布选项:“允许更新此预编译站点” 详解
目录
#使用visual studio 发布web项目
我们使用visual studio 可以通过如下的方法发布web网站:

在打开的对话框中,有一个选项至关重要,那就是:“允许更新此预编译站点”
“允许更新此预编译站点”这一项,是可选的,那么,选中与不选中,有何区别呢?
#"允许更新此预编译站点" 选项的意义
我们在发布 .Net web项目时,一般情况下,项目中所有的.CS文件,会自动生成DLL动态链接库,这就能够很好的保护网站的源代码,因为服务端代码一般都是放在.CS文件里面的,既然都生成了DLL文件,那么,上传到服务器,别人就不能轻易打开来看了!
但是,其它的文件,诸如ashx、aspx等文件,里面原来有什么,就是什么,别人可以打开这些文件来查看,尽管别人看不见CS代码,但是仍然能够看见ASPX文件里面的HTML代码或部分服务器控件及相关的属性;ashx这样的文件,就相当于一个cs文件,里面的代码也是能够轻易看见的;
因此,.CS文件安全了,但是ASPX、ashx等文件,就不安全了;
那么,到底有没有一种办法,让上传到服务器的web文件,都安全呢?方法是有的,就是发布的时候,不选中 “允许更新此预编译站点”;
1、选中 “允许更新此预编译站点”
如果发布web的时候,选中“允许更新此预编译站点”,那么,结果是这样的:
整个网站文件,除了所有的CS文件编译成为DLL文件之外,其它的文件,和原来的没有任何变化,里面是什么,还是什么,只要别人通过记事本一打开,里面的代码、HTML代码等,都可以让别人一览无余。
除此之外,通过此种方式发布的网站,当用户第一次访问某个页面的时候,需要经过编译,查找BUG,之后,如果没有任何错误,才能正常访问,因此,速度会变得比较慢。之后的访问就正常了;
2、不选中 “允许更新此预编译站点”
如果在发布web的时候,不选中“允许更新此预编译站点”,那么,结果是这样的:
1、网站里面的所有CS文件,都被编译成为DLL文件;
2、除了cs文件,其它的文件,诸如ASPX、ASHX等文件,也一同被编译起来,每个文件都在BIN目录里面生成一个对应的*.compiled文件;
之后,如果您通过记事本查看ASPX、ASHX等文件,里面不会看到任何的代码,就连HTML代码标记都看不见,打开这样的文件,里面只有一行文字,内容为“这是预编译工具生成的标记文件,不应被删除!”,且这些文件的大小都为1kb;



这样的结果看着有点诡异,但是,web的访问却是正常的,不会出现任何不良的问题。
所以呢,使用这种方式发布web,ashx、aspx等文件都不能通过记事本打开,里面显示的都是一行文字,因此,网站文件就非常安全了。
此外,通过此种方法发布的网站,所有内容都编译好了,打开的速度是很快的。
3、Asp.Net MVC 的web项目也有同样的结果


#当本地的web文件发生修改的时候,需要更新哪些文件到服务器;
1、如果发布方式,选中了“允许更新此预编译站点”;
- 如果修改的是aspx或cshtml等网页文件,那只需更新发布后的aspx文件到服务器;
- 如果修改的是aspx.cs文件,那需要将bin下的对应的dll更新到服务器;
如果修改的是ashx文件,那只需要将ashx文件更新到服务器;
2、如果发布方式,没选中“允许更新此预编译站点”;
- 如果修改的是aspx或cshtml等网页文件,那需要将对应的DLL文件及.compiled文件都更新到服务器,而aspx文件不需要更新到服务器;
- 如果修改的是aspx.cs文件,那需要将bin下的对应的dll更新到服务器;
如果修改的是ashx文件,那需要将对应的DLL文件及.compiled文件都更新到服务器,而ashx文件不需要更新到服务器;
#参考
https://www.cnblogs.com/LifeKingcn/archive/2012/09/15/2686579.html
ASP.NET Web项目发布选项:“允许更新此预编译站点” 详解的更多相关文章
- ASP.NET网站发布-允许更新此预编译站点 打勾与不打勾的区别
发布网站时在打开的对话框中,有一个选项是至关重要的,那就是“允许更新此预编译站点”: “允许更新此预编译站点”这一项,默认情况下,前面是打上一个√的,至于要不要打上一个√,是可选的,那么,打勾与不打勾 ...
- net网站发布-允许更新此预编译站点 及修改发布后内容
我们可以通过如下的方法发布VS2010的网站: “生成”→“发布网站”:弹出对话框! 在打开的对话框中,有一个选项是至关重要的,那就是“允许更新此预编译站点”: “允许更新此预编译站点”这一项,默认情 ...
- 在 Visual Studio 2013 中创建 ASP.NET Web 项目(0):专题导航 [持续更新中]
写在前面的话 随着 Visual Studio 2013 的正式推出,ASP.NET 和 Visual Studio Web 开发工具 也发布了各自的最新版本. 新版本在构建 One ASP.NET ...
- VS2015 ASP.NET5 Web项目
VS2015 ASP.NET5 Web项目结构浅析 前言 本文个人同步博客地址http://aehyok.com/Blog/Detail/76.html 在安装好VS2015之后,一直想看看新版本 ...
- 在 Visual Studio 2013 中创建 ASP.NET Web 项目(1):概述 - 创建 Web 应用程序项目
注:本文是“在 Visual Studio 2013 中创建 ASP.NET Web 项目”专题的一部分,详情参见 专题导航 . 预备知识 本专题适用于 Visual Studio 2013 及以上版 ...
- Java Web项目发布及使用自定义域名
详细讲解的网址: http://wenku.baidu.com/link?url=-ACZxKUcfrbhrMRUP3Ov-Q_c-Q9JPrA9D1fzHjHuJsWwZfRsVDVQ2qBtoY7 ...
- ASP.NET MVC 5 学习教程:Edit方法和Edit视图详解
原文 ASP.NET MVC 5 学习教程:Edit方法和Edit视图详解 起飞网 ASP.NET MVC 5 学习教程目录: 添加控制器 添加视图 修改视图和布局页 控制器传递数据给视图 添加模型 ...
- 【译】ASP.NET MVC 5 教程 - 7:Edit方法和Edit视图详解
原文:[译]ASP.NET MVC 5 教程 - 7:Edit方法和Edit视图详解 在本节中,我们继续研究生成的Edit方法和视图.但在研究之前,我们先将 release date 弄得好看一点.打 ...
- web缓存服务器varnish-4.1.6的部署及配置详解
web缓存服务器varnish-4.1.6的部署及配置详解 1.安装varnish4.1.6安装依赖 yum install -y autoconf automake jemalloc-devel l ...
随机推荐
- tar命令中的 -C 作用
我用这个命令:tar zcvf chao.tar.gz /chao/* 打包文件的时候,在压缩包里把 /chao/这个路径也打包进去了. [root@yunwei-test chao]# ls / ...
- CSS3背景与渐变
一.CSS3 背景图像区域 background-clip(指定背景绘制区域) ackground-clip: border-box / padding-box / content-box; /*没有 ...
- 用 IQ分布模拟图来测试浏览器的性能
今天天气太凉快,跟这个日历上属于夏天的那一页显得格格不入!就连我我床下那台废弃的ThinkPad,居然也十分透凉气,那外壳连我的体温高都没有,于是,我就开始想一个方法,让我那个废弃的电脑发热,顺便用它 ...
- 黑马程序员_ADO.Net(ExecuteReader,Sql注入与参数添加,DataSet,总结DataSet与SqlDataReader )
转自https://blog.csdn.net/u010796875/article/details/17386131 一.执行有多行结果集的用ExecuteReader SqlDateReader ...
- Java并发框架:Executor
介绍 随着当今处理器中可用的核心数量的增加, 随着对实现更高吞吐量的需求的不断增长,多线程 API 变得非常流行. Java 提供了自己的多线程框架,称为 Executor 框架. 1. Execut ...
- spring的context:exclude-filter 与 context:include-filter
1 在主容器中(applicationContext.xml),将Controller的注解打消掉 <context:component-scan base-package="com& ...
- Java第四次作业——面向对象高级特性(继承和多态)
Java第四次作业--面向对象高级特性(继承和多态) (一)学习总结 1.学习使用思维导图对Java面向对象编程的知识点(封装.继承和多态)进行总结. 2.阅读下面程序,分析是否能编译通过?如果不能, ...
- Spring源码阅读-ApplicationContext体系结构分析
目录 继承层次图概览 ConfigurableApplicationContext分析 AbstractApplicationContext GenericApplicationContext Gen ...
- C# 收集几条ToString()格式
.ToString("C");//¥1,200.00 .ToString("D3");//025 string r3 = 2500.1231.ToString( ...
- python笔记(1)--序列(列表 元组 range)
一.序列分类 1.可变序列:list 2.不可变序列:tuple,range 二.序列公共操作方法 1.操作和返回值 其中s和t代表同类型序列:n,i,j,k为整数:x为任意类型. 序号 操作 结果 ...