asp.net发布网站时三个选项的问题[网站发布]
发布网站的时候有三个选项,很多人都不知道到底是怎么用的,简单说说:
不选中这一项,编译出来的aspx中没有界面信息,只有一句静态文本,就是不允许发布后修改页面
如果是想此编译方式具有最大的安全性,应去掉"允许更新此预编译站点(Allow this precompiled site to be updateable". 这样代码文件(code,即cs文件)和内容文件(content file,即aspx)都会预编译
2,使用固定命名和单页程序集
3.对预编辑程序集启用强命名
在多数情况下,完全预编译方式正是所需要的方式,但是有时候因为内容文件变化不大,你可能希望在网站发布后,不用每次把所有的代码与内容文件全部编译,也许内容文件就不用再次编译,只需编译代码文件即可,这种情况下,就选中"允许更新此预编译站点",这种方式称为"只预编译代码文件(pre- compilation of code only)"方式.此方式与"完全预编译方式"相比较,只有一点区别,即内容文件仍是原始版本,而不是存根 (stub)版本,其它效果相同.在内容文件发布后也可以对其进行编辑,其变动在以后的请求到来时起作用,对于访问此站的用户来说是透明的.
附:
强命名(strong names) 如果一个assembly需要共享,则其必须使用强命名.一个强命名唯一标识了一个assembly.有四部分组成: 1,assembly名称(不包含文件扩展名);2,版本; 3,culture;
延迟签名:显然,每个公司的私钥都必须非常安全地保存,然后这就带来一个进退两难的问题:在开发和测试一个共享的assembly时,需要使用强命名方式, 而创建强命名时肯定需要访问私钥的,但是又不能把公司的私钥提供给参与项目开发的且需要创建强命名的所有开发人员,怎么办? 这时就要用"延迟签名"技术.此种方式下,在创建强命名assembly时,只需要提供公钥,因为公钥提供给所有的人是允许的,也是安全的,利用公钥,开发人员可以进行程序的开发和测试工作,直到准备进行最终的build时,才同时使用公钥和私钥. 延迟签名需要从key文件中把公钥解出来,形成独立的公钥文件,通过使用命令: sn -p KeyPair.snk PublicKey.snk即可.这样,publicKey.snk只包含公钥,就可以用了.
但每一次发布网站,网站dll文件都会生成随机的名字,页面继承的类都会继承随机的名字
这就造成了,哪怕是一点很小的修改,在发布网站之后,也必须重新上传所有的页面
如果采用“固定命名和单页程序集”的方式,又会生成太多dll文件,看着就心烦
http://download.microsoft.com/download/9/4/9/9496adc4-574e-4043-bb70-bc841e27f13c/WebDeploymentSetup.msi
右键在当前解决方案里生成一个:Add Web Deployment Project 项目, 在该项目里就可以设置生成DLL的命名方式了,以后生成该项目就可以生成相应的网站!原有的发布网站的功能可以退休了!
下载地址
1、下载后安装、右键选择vs2005中的项目、会出现一个选项"Add Web Deployment Project"
2、选择添加一个WebDeployment Project(输入程序集名称和发布地址)
3、此时解决方案中会多出一个项目
4、右键选择该项目设置相应属性
5、右键选择该项目选择“生成”、此时会发布网站到指定的目录、生成DLL文件同vs2003一样、更新时只需上传DLL文件
t"WebDeployment"v8.0"Microsoft.WebDeployment.targets 574 9 DaishuSite
本博文章基本上属于原创或收集整理,都是心血结晶。
欢迎转载分享,转载请注明出处,谢谢!
本文地址:asp.net发布网站时三个选项的问题[网站发布]
一条评论
博主油菜花啊,