asp.net发布网站时三个选项的问题

asp.net发布网站时三个选项的问题

 

发布网站的时候有三个选项 

第一个选项指定发布后是不是可以修改aspx文件,如果勾选,则发布后的网站行为基本与ASP.NET   1.1一致,只要没有增删修改控件,可以直接在服务器上修改aspx文件不用重新发布网站。 

第二个选项指定是不是将每个aspx文件都编译成一个DLL文件,这样,就可以在修改了哪个aspx网页(包括aspxcs文件),只需要更新一个DLL文件就行了,不用整站全部更新。

1 允许更新此预编辑站点

选中这一项后,编译出来的包括aspx文件和dll,与2003下一样。

不选中这一项,编译出来的aspx中没有界面信息,只有一句静态文本,就是不允许发布后修改页面

为了不让订阅网站的用户在第一次打开页面时感受到明显的延迟,可以使用"完全预编译(full pre-compilation)"方式.

如果是想此编译方式具有最大的安全性,应去掉"允许更新此预编译站点(Allow this precompiled site to be updateable". 这样代码文件(code,cs文件)和内容文件(content file,aspx)都会预编译

2 使用固定命名和单页程序集

会案照画面的类名编译出很多名字固定的dll

3 对预编辑程序集启用强命名

在多数情况下,完全预编译方式正是所需要的方式,但是有时候因为内容文件变化不大,你可能希望在网站发布后,不用每次把所有的代码与内容文件全部编译,也许内容文件就不用再次编译,只需编译代码文件即可,这种情况下,就选中"允许更新此预编译站点",这种方式称为"只预编译代码文件(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只包含公钥,就可以用了.

出现问题

visual studio2005将网站开发和网站发布的目录分开,本身是个很好的设定

但每一次发布网站,网站dll文件都会生成随机的名字,页面继承的类都会继承随机的名字

这就造成了,哪怕是一点很小的修改,在发布网站之后,也必须重新上传所有的页面

如果采用固定命名和单页程序集的方式,又会生成太多dll文件,看着就心烦

解决方法

安装:

http://download.microsoft.com/download/9/4/9/9496adc4-574e-4043-bb70-bc841e27f13c/WebDeploymentSetup.msi

右键在当前解决方案里生成一个:Add Web Deployment Project 项目, 在该项目里就可以设置生成DLL的命名方式了,以后生成该项目就可以生成相应的网站!原有的发布网站的功能可以退休了!

参考微软原文

http://msdn.microsoft.com/en-us/library/aa479568.aspx  (Web Deployment Project官方详细介绍)

http://msdn2.microsoft.com/en-us/asp.net/aa336619.aspx

使用WebDeployment Project改善VS2005发布网站问题

VS2005发布网站时不会像VS2003一样生成规则的DLL文件、而生成的DLL文件名含有随机数且不能一个项目生成一个DLL文件、让人有一些遗憾、为了做到像vs2003一样,微软发布了WebDeployment Project插件可解决此问题:

下载地址

1、下载后安装、右键选择vs2005中的项目、会出现一个选项"Add Web Deployment Project"


2、选择添加一个WebDeployment Project(输入程序集名称和发布地址)


3、此时解决方案中会多出一个项目


4、右键选择该项目设置相应属性


5、右键选择该项目选择生成、此时会发布网站到指定的目录、生成DLL文件同vs2003一样、更新时只需上传DLL文件


我运行发现这个错,

错误 1 “aspnet_merge.exe”已退出,代码为 1 C:"Program Files"MSBuild"Microsoft"WebDeployment"v8.0"Microsoft.WebDeployment.targets 574 9 DaishuSite

后来网上查了下。是类存在同名的缘故。

VS 2005的工具-选项-项目和解决方案-生成并运行,设置“MSBuild 项目生成输出详细信息,选择详细。再次生成Web Deployment Projects项目,输出框内的信息就变得非常丰富了;这样就可以查看哪里出错了 


Microsoft Visual Studio 2005Microsoft Visual Studio 2008里发布网站,默认生成的DLL文件名是随机的,一般为App_Web_*******.DLL,这看起来多难受呀。我们将利用Web Deployment Projects 这个插件实现发布网站自定义DLL名。

Web Deployment Projects 有两个版本,分别针对20052008,下载地址如下:

Visual Studio 2005 Web Deployment Projects 
Visual Studio® 2008 Web Deployment Projects - RTW

下载完对应文件后安装,如果你机器上装有2个版本的VS,可以同时把上面两个Web Deployment Projects 都安装了,不会冲突。然后在发布网站下面多出一个“Add Web Deployment Project”,在里面设置自定义的DLL文件名和生成目录,然后在解决方案资源管理器里会看到多了个项目,项目名为你设置的DLL文件名,右键生成就可以获得自定义的DLL文件。(在属性里有更多详细设置)


 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
最新版本下载地址: http://download.csdn.net/source/823721 论坛功能设计  论坛前台: 1. 用户注册、登陆、注销; 2. 版块导航:显示所有的版块分组和版块; 3. 帖子列表:显示当前版块下所有的帖子,可以区分置顶帖子、精华帖子、推荐帖子; 4. 帖子内容:显示帖子内容; 5. 帖子回复:显示帖子的回复列表; 6. 添加帖子:用户添加新帖; 7. 添加回复:用户添加回复; 8. 精华帖子列表:显示所有的精华帖子; 9. 推荐帖子列表:显示所有的推荐帖子; 10. 帖子管理:具有帖子管理权限的人对帖子进行管理; 11. 回复管理:具有帖子回复管理权限的人对帖子回复进行管理;  论坛后台: 1. 版块组管理:添加、删除、修改; 2. 版块管理:添加、删除、修改,添加或修改时通过下拉框选择版块组; 3. 版主管理:可以管理论坛中每个版块的版主,如添加、删除版主; 4. 用户管理:查看用户资料、删除用户、封锁用户、解锁用户、重置密码; 5. 角色管理:添加、删除、修改; 默认定义如下角色: 系统管理员、用户管理员、角色管理员、版块管理员、版主管理员、版主、所有者、注册用户、所有人;其中所有者指发帖人,回复人;另外系统管理员、注册用户、所有者、所有人是内置角色,不能修改或删除;下面分别对每种角色的含义进行说明: 1) 系统管理员:拥有论坛所有权限; 2) 用户管理员:拥有用户管理权限; 3) 角色管理员:拥有角色管理权限; 4) 版块管理员:拥有版块管理权限; 5) 版主管理员:拥有版主管理权限; 6) 版主:拥有所有论坛事务管理权限; 7) 所有者:拥有对自己发表的帖子或回复的内容进行修改的权限;(此角色可以考虑禁用,出于数据真实性考虑,因为任何人都要对他或她所说的言行负责,不允许随便修改); 8) 注册用户:拥有一部分论坛事务,如看帖,发帖,回帖,管理和自己相关的一些帖子; 9) 所有人:这个角色只是一个映射角色,任何登陆网站的人都自动拥有此角色;此角色可以表示匿名用户;仅拥有此角色的人一般只能看帖,不能做其他任何事情。当然如果愿意,我们也可以给它分配更多的权限,如发帖,回帖。如果这样,那就意味着运行匿名用户发帖或回帖了。 6. 用户角色管理:对任意一个用户的所属角色进行管理(包括添加和删除用户所属角色); 7. 角色权限管理:分为两类进行管理; 系统管理权限:用户管理、角色管理、版块管理、版主管理; 论坛事务管理权限:浏览帖子、发表帖子、编辑帖子、置顶帖子、设为推荐帖子、设为精华帖子、删除帖子、修改回复、删除回复; 因为权限分为两种,所以角色权限管理也可以采用两个界面实现。这两个界面的行就是所有角色,列就是当前权限类型下的所有权限点。 8. 头像设置:设置用户的头像; 9. 密码修改; 10. 我的帖子管理:有我发布的帖子,我回复的帖子; 另外,一个论坛可能还常常有星级评定,积分设置,界面管理,等等其他辅助功能。这些东西可以在日后慢慢补充。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值