`
ruilin215
  • 浏览: 1148204 次
  • 性别: 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文件。(在属性里有更多详细设置)


分享到:
评论

相关推荐

    ASP.Net WebForm的发布(图解)

    *** WebForm发布是一个将开发完成的Web应用程序部署到服务器上的过程。发布可以将程序集和资源部署到服务器的适当位置,以便用户可以访问该应用程序。本文将详细介绍*** WebForm两种发布方法,包括发布到默认的IIS...

    ASP.NET Core 3.1中文教程.pdf

    * 2.0 版:ASP.NET Core 的第三个版本,于 2017 年发布。 * 2.1 版:ASP.NET Core 的第四个版本,于 2018 年发布。 * 2.2 版:ASP.NET Core 的第五个版本,于 2018 年发布。 * 3.0 版:ASP.NET Core 的第六个版本,...

    asp.net选项卡

    在ASP.NET中,选项卡可以通过多种方式实现,例如使用内置的AjaxControlToolkit的TabContainer控件,或者使用第三方库如DevExpress、Telerik等提供的选项卡组件。这些控件提供了丰富的功能,包括动态加载内容、自定义...

    asp.net Tab 选项卡

    此外,ASP.NET还提供了一些第三方控件库,如DevExpress、Telerik等,它们提供了更为丰富的选项卡控件,具有更多自定义样式和功能,如动画效果、Ajax支持等。这些控件库可以方便地集成到ASP.NET项目中,提升UI的美观...

    【ASP.NET编程知识】ASP .NET 可编辑输入自动匹配的下拉框.docx

    本文将从三个方面介绍该控件的实现方法:首先,介绍如何在 ASP.NET 项目中添加 Telerik 的 RadComboBox 控件;其次,介绍如何在后台绑定下拉框的数据源;最后,介绍如何实现下拉框的检索功能。 一、引用 dll 文件 ...

    Programming ASP.NET(第三版)

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

    ajax asp.net省市县三级联动

    ASP.NET是由微软开发的服务器端Web应用程序框架,用于构建动态网站、Web应用和服务。它提供了丰富的控件、数据绑定、事件处理机制,以及强大的服务器端和客户端脚本支持。 二、Ajax(Asynchronous JavaScript and ...

    asp.net在线考试系统_三个简单例子

    本篇将围绕"asp.net在线考试系统_三个简单例子"这个主题,探讨三个不同形式的Web程序源代码,这些源代码可供学习和参考,帮助开发者理解在线考试系统的实现。 首先,我们要讨论的是在线考试系统的三层架构。在软件...

    如何在IIS服务器中发布ASP.NET网站

    ### 如何在IIS服务器中发布ASP.NET网站 #### 知识点一:IIS服务器简介与作用 IIS(Internet Information Services)是微软提供的基于运行Microsoft Windows的互联网基本服务,主要用于提供Web服务。它是Windows...

    用asp.net css js实现选项卡的效果

    首先,ASP.NET 是微软开发的一种服务器端编程框架,用于构建动态网站、Web 应用程序和Web服务。在这个场景中,ASP.NET 可以用来处理服务器端逻辑,如数据获取和验证,以及与数据库交互等。 CSS(层叠样式表)则是...

    ASP.NET购物网站实现

    ASP.NET购物网站实现是一个以C#编程语言为基础的项目,主要目标是构建一个在线售卖笔记本电脑的电子商务平台。在这个项目中,我们将深入探讨ASP.NET框架的功能及其在开发Web应用程序中的应用,尤其是对于创建动态、...

    asp.net 后台管理系统界面

    ASP.NET MVC(Model-View-Controller)是一种设计模式,它将应用程序分为三个主要部分:模型、视图和控制器。模型处理业务逻辑和数据,视图负责显示数据,而控制器处理用户输入并协调模型和视图之间的交互。MVC ...

    ASP.NET 省 城市 县区三级联动

    例如,可以使用ASP.NET AJAX库中的UpdatePanel控件或jQuery的AJAX方法,使得在选择上级选项时,下级列表的更新不会导致整个页面的刷新。 6. 客户端脚本:在前端,可能还需要编写JavaScript或jQuery代码来处理用户的...

    ASP.NET多选下拉框自定义控件

    在ASP.NET开发中,我们经常需要处理用户交互,如选择多个选项的情况,此时,传统的单选下拉框(DropDownList)往往无法满足需求。本文将深入探讨如何创建一个自定义的多选下拉框控件,以提升用户体验,并利用Ajax...

    Asp.net三级联动

    它指的是三个或更多级的控件之间存在联动关系,当用户在一级控件中选择一个选项时,二级控件会自动加载与之相关的选项,同理,当二级选择后,三级控件也会根据前两级的选择更新其显示内容。这种设计提高了用户体验,...

    asp.net mvc项目源码

    通过分析和学习这个源码包,你可以掌握如何在ASP.NET MVC中实现三层架构,如何使用Entity Framework进行数据库操作,以及如何自定义ASP.NET的提供者机制。此外,你还能学习到项目组织结构、解决方案管理、代码签名等...

    这是一个asp.net动态网站登入页面

    这个压缩包包含的“LoginPage”很可能是一个实现用户登录功能的页面,是ASP.NET网站的核心部分。 在ASP.NET中,登录页面通常由几个关键组件构成: 1. **用户名和密码输入框**:这是用户输入凭证的地方。ASP.NET...

    ASP.NET MVC省市县三级级联(JQuery)

    总的来说,这个项目展示了如何利用ASP.NET MVC和JQuery结合MySQL数据库来实现Web应用中的动态三级联动功能,对于学习和理解MVC模式、AJAX技术以及MySQL数据库操作有着很好的实践意义。同时,也涉及到了前端与后端的...

    简单的ASP.NET个人空间网站

    10. **部署和发布**:完成开发后,个人空间需要部署到服务器上,ASP.NET提供了多种发布选项,如Web Deploy、FTP等,便于将项目上传到远程服务器。 通过学习和分析这个ASP.NET个人空间网站Demo,开发者可以深入了解...

    ASP.NET第三方控件

    Telerik的ASP.NET AJAX控件库提供了超过70个高质量的Web控件,包括报表、树视图、日历、图表等。这些控件具有响应式设计,能适应不同设备的屏幕尺寸,且支持多种浏览器,确保了跨平台兼容性。 3. **Infragistics**...

Global site tag (gtag.js) - Google Analytics