`
winzenghua
  • 浏览: 1322555 次
  • 性别: Icon_minigender_2
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

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文件。(在属性里有更多详细设置)


分享到:
评论

相关推荐

    Programming ASP.NET(第三版)

    ASP.NET中的配置和部署选项:一个数据库设计快速指南的附录。本书对于ASP.NET 2.0技术和Visual Studio 2005进行了全面讲解,出色地囊括了读者在实际编程中会用到的ASP.NET的重要特性,十分适合中级读者。

    ASP.NET的网页代码模型及生命周期

    ASP.NET网页一般由三部分组成,这三个部分如下所示。 q 可视元素:包括HTML,标记,服务器空间。 q 页面逻辑元素:包括事件处理程序和代码。 q designer.cs页文件:用来为页面的控件做初始化工作,一般只有ASP.NET...

    ASP.NET 控件的使用

    第二部分 设计ASP.NET网站 第5章 使用母版页设计网站 160 5.1 创建母版页 160 5.1.1 创建默认内容 163 5.1.2 嵌套母版页 166 5.1.3 在母版页中使用图片和超链接 170 5.1.4 在Web配置文件中注册母版页 172 5.2 修改...

    Web程序设计实验1ASP.NET标准控件和验证控件

    1、熟练掌握ASP.NET服务器控件的使用。 2、熟练掌握验证控件的使用。 二、实验内容 1、编写一个Web应用程序Login,该程序用于检查用户登录信息。当用户输入正确的用户名和密码时,显示登录成功的消息。否则,显示...

    学生业余生活调查系统asp.net源码.rar

    学生业余生活调查系统asp.net源码,可以进行选择或自定义,暂没有管理后台。 (一)设计如下面的数据项和数据结构。 1、题目信息,包括的数据项有:编号,主题,票数。 2、选项信息,包括的数据项有:编号,选项...

    ASP.NET.4揭秘

    第二部分 设计asp.net网站 第5章 使用母版页设计网站180 5.1 创建母版页180 5.1.1 创建默认内容183 5.1.2 嵌套母版页186 5.1.3 在母版页中使用图片和超链接191 5.1.4 在web配置文件中注册母版页193 5.2 修改母版页...

    ASP.NET4高级程序设计(第4版) 3/3

    第三部分 构建ASP.NET网站 第15章 用户控件 520 15.1 用户控件基础 520 15.1.1 创建简单的用户控件 521 15.1.2 把页面转换成用户控件 522 15.2 为用户控件添加代码 523 15.2.1 处理事件 523 15.2.2 ...

    asp.net技术内幕(1)

    第一部分 使用ASP.NET Web表单 <br>第1章 建立ASP.NET页面 <br>1.1 ASP.NET和.NET框架 1.1.1 .NET框架类库 1.1.2 理解名称空间 1.1.3 标准的ASP.NET名称空间 1.1.4 与.NET框架兼容的语言 ...

    ASP.NET4高级程序设计第4版 带目录PDF 分卷压缩包 part1

    第三部分 构建ASP.NET网站 第15章 用户控件 15.1 用户控件基础 15.1.1 创建简单的用户控件 15.1.2 把页面转换成用户控件 15.2 为用户控件添加代码 15.2.1 处理事件 15.2.2 添加属性 15.2.3 使用...

    ASP.net技术内幕

    本书是关于使用ASP.NET建立网站的完整参考书,书中包含数百个代码示例,读者可以使用这些示例开始建立自己的网站 前言 <br/>第一部分 使用ASP.NET Web表单 <br/>第1章 建立ASP.NET页面 <br/>1.1 ...

    学生业余生活调查系统asp.net

    2、选项信息,包括的数据项有:编号,选项编号,选项内容,票数。 (二)数据库概念结构设计 根据上面设计规划出的实体 (三)逻辑设计 基本表设计 将E-R图转化为关系模式。利用关系型数据库的特征,将系统设计为1...

    Asp.net试题素材管理系统源码 2.0.rar

    一个多用户在线题库管理系统,可以实现各类试题的添加和管理,可以实现...系统实现三层架构开发(内附开发文档),利用了Asp.net2.0中的master、skin、gridview等控件,采用Sql2005数据库(DB下为数据库文件,附加即可)

    完全手册:ASP.net Ajax电子教程(1-8章)

    第一篇 ASP.NET AJAX概述 第1章 初识ASP.NET AJAX  1.1 ASP.NET AJAX概述  1.1.1 ASP.NET和ASP.AJAX ...第三篇 ASP.NET AJAX系统开发实战  第14章 基于AJAX的电子商务应用  第15章 在线即时通讯工具

    完全手册:ASP.net Ajax电子教程(9-15章)

    第一篇 ASP.NET AJAX概述 第1章 初识ASP.NET AJAX  1.1 ASP.NET AJAX概述  1.1.1 ASP.NET和ASP.AJAX ...第三篇 ASP.NET AJAX系统开发实战  第14章 基于AJAX的电子商务应用  第15章 在线即时通讯工具

    完全手册ASP.NETAjax实用开发详解(14-15)

    目录 第一篇 ASP.NET AJAX概述 第1章 初识ASP.NET AJAX  1.1 ASP.NET AJAX概述  1.1.1 ASP.NET和ASP.AJAX ...第三篇 ASP.NET AJAX系统开发实战  第14章 基于AJAX的电子商务应用  第15章 在线即时通讯工具

    Asp.net试题素材管理系统源码

    Asp.net试题素材管理系统源码 一个多用户在线题库管理系统,可以实现...系统实现三层架构开发(内附开发文档),利用了Asp.net2.0中的master、skin、gridview等控件,采用Sql2005数据库(DB下为数据库文件,附加即可)

    大型门户网站CMS(asp.net 3.5)

    15、文章模板和栏目模板支持,每篇文章、每个栏目均可绑定一个模板,实现网站页面多样化。全站生成静态HTM。 16、投票管理,生成JS。方便各处调用。 17、广告管理,提供文字、图像、Flash三种格式的广告,生成JS,...

    MVC2.0入门必读教程程序源码

    安装完ASP.NET MVC后,在VS里新建一个项目,可以看到有一个“ASP.NET MVC Web Application”的选项,选择它,新建一个项目,并命名为“MVCDemo”。 建完项目后,可以看到默认情况下已经建立了很多文件夹,这里简略...

    asp.net学生业余生活调查系统源码

    利用关系型数据库的特征,将系统设计为1个数据库,包含2个基本表: 1、主表:编号,主题,票数。 2、附表:编号,选项编号,选项内容,票数。 DB_51aspx下为Sql数据库文件,附加后修改App_Code下的数据库连接信息

Global site tag (gtag.js) - Google Analytics