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 ...
随机推荐
- POJ 1743:Musical Theme(后缀数组+二分)
题目链接 题意 有N个音符的序列来表示一首乐曲,每个音符都是1到88范围内的整数,现在要找一个重复的主题."主题"是整个音符序列的一个子串,它需要满足如下条件: 长度至少为5个音符 ...
- HDU 2896:病毒侵袭(AC自动机)
http://acm.hdu.edu.cn/showproblem.php?pid=2896 题意:中文题意. 思路:AC自动机模板题.主要在于字符有128种,输出还要排序和去重! 注意是“total ...
- Html自动播放音乐代码
<audio id="bgmMusic" src="demo.mp3" autoplay="autoplay" loop=" ...
- django基础知识之上传图片:
上传图片 当Django在处理文件上传的时候,文件数据被保存在request.FILES FILES中的每个键为<input type="file" name="& ...
- Profibus 接线
无论是组成MPI还是RPOFIBUS-DP网络,用到的主要部件都是一样的: PROFIBUS电缆:电缆型号有多种,其中最基本的是PROFIBUS FC(Fast Connect快速连接)Standar ...
- Java连载5-标识符、关键字和字面值
一.标识符 1.标识符定义:在java源程序中凡是可以自己命名的单词 2.标识符可以标识什么元素? (1)类名(2)方法名(3)变量名(4)接口名(5)常量名 等等 3.标识符的命名要求 (1)一个合 ...
- Gin 框架 - 使用 logrus 进行日志记录
目录 概述 日志格式 Logrus 使用 推荐阅读 概述 上篇文章分享了 Gin 框架的路由配置,这篇文章分享日志记录. 查了很多资料,Go 的日志记录用的最多的还是 github.com/sirup ...
- 关于使用 AJax 生成Form表单,且表单提交需要验证,验证实效的解决方法
@Ajax.ActionLink("添加", "AddUser",new AjaxOptions() {InsertionMode = InsertionMod ...
- acm 模板
Index 分类细则 说起分类准则,我也是很头疼,毕竟对于很多算法,他并不是单调的,而是多方面的都挂得上钩.所以,从始至终,分类准则一直都是我很纠结的问题. 经过思量,首先分出比较主流的几类:Numb ...
- Linux下移动图像监测系统——motion的移植及应用
移动图像监控主系统的开发 移动图像监控的原理方法: 通过获取摄像头图像,比较前后每一帧的图像数据,从而实现移动物体监控.所有移动监控均是如此,只是图像帧的比较算法不同. 移动图像监控系统的实现 选择开 ...