1.允许更新此预编辑站点
2,使用固定命名和单页程序集
3.对预编辑程序集启用强命名
为了不让订阅网站的用户在第一次打开页面时感受到明显的延迟,可以使用 "完全预编译(full pre-compilation) "方式.
如果是想此编译方式具有最大的安全性,应去掉 "允许更新此预编译站点(Allow this precompiled site to be updateable ". 这样代码文件(code,即cs文件)和内容文件(content file,即aspx)都会预编译.如果要强命名方式,选中 "Ename strong naming on precompiled assemblies "(此处Ename是个印刷错误,应该是Enable).这样就可以定位到key文件所在位置.此处有个复选框可以用来实现 "延迟签名(delay signing). 有两种使用强命名方式,一为通过利用key文件;二为使用Key Container,这种方式允许你使用RSA Key Containers.可以进行选择.
在多数情况下,完全预编译方式正是所需要的方式,但是有时候因为内容文件变化不大,你可能希望在网站发布后,不用每次把所有的代码与内容文件全部编译,也许内容文件就不用再次编译,只需编译代码文件即可,这种情况下,就选中 "允许更新此预编译站点 ",这种方式称为 "只预编译代码文件(pre-compilation of code only) "方式.此方式与 "完全预编译方式 "相比较,只有一点区别,即内容文件仍是原始版本,而不是存根(stub)版本,其它效果相同.在内容文件发布后也可以对其进行编辑,其变动在以后的请求到来时起作用,对于访问此站的用户来说是透明的.
附:
强命名(strong names) 如果一个assembly需要共享,则其必须使用强命名.一个强命名唯一标识了一个assembly.有四部分组成:1,assembly名称(不包含文件扩展名);2,版本; 3,culture; 4,密钥对(即一个公钥和一个私钥),保存在key文件中,所以说key文件就是同时包含了公钥和私钥的文件,在使用强命名时当然是需要此key文件的.创建key文件用命令: sn -k KeyPair.snk
延迟签名:显然,每个公司的私钥都必须非常安全地保存,然后这就带来一个进退两难的问题:在开发和测试一个共享的assembly时,需要使用强命名方式,而创建强命名时肯定需要访问私钥的,但是又不能把公司的私钥提供给参与项目开发的且需要创建强命名的所有开发人员,怎么办? 这时就要用 "延迟签名 "技术.此种方式下,在创建强命名assembly时,只需要提供公钥,因为公钥提供给所有的人是允许的,也是安全的,利用公钥,开发人员可以进行程序的开发和测试工作,直到准备进行最终的build时,才同时使用公钥和私钥. 延迟签名需要从key文件中把公钥解出来,形成独立的公钥文件,通过使用命令: sn -p KeyPair.snk PublicKey.snk即可.这样,publicKey.snk只包含公钥,就可以用了.