目录
- # 使用 visual studio 发布 web 项目
- #"允许更新此预编译站点" 选项的意义
1, 选中 "允许更新此预编译站点"
2, 不选中 "允许更新此预编译站点"
3,ASP.NET MVC 的 Web 项目也有同样的结果
# 当本地的 Web 文件发生修改的时候, 需要更新哪些文件到服务器;
1, 如果发布方式, 选中了 "允许更新此预编译站点";
2, 如果发布方式, 没选中 "允许更新此预编译站点";
- # 参考
- # 使用 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
来源: https://www.cnblogs.com/willingtolove/p/11316618.html