用VS2010发布ASP.net网站

news/2024/5/12 11:08:41/文章来源:https://blog.csdn.net/zhaohongx/article/details/38612007

用VS2010发布ASP.net网站  

2012-03-14 14:29:39|  分类: VS2005 |  标签: |举报 |字号 订阅

http://www.cppblog.com/guogangj/archive/2011/09/13/155703.html

发布网站

发布网站有多种形式,传统方式使用FTP,或用Windows远程桌面,将各个aspx和dll复制到对应的服务器目录中去。这样做的缺点是不够方便,且很难做到只上传更新过的文件。
Visual Studio提供了直接的网站发布的功能,其实是微软的一套工具,Web Deployment Tool
使用步骤:

“Publish Web”----出现对话框如下:

1. “Site/application”的选项:“/lm/w3svc/1/ROOT/app1”

“lm”大概是Local machine,网站发布位置跟前面指定的服务器一致;“w3svc”就是IIS服务了,“1”是Site ID,这里的“1”指的应该就是默认网站;“ROOT”这里指的是默认网站的根目录;最后的“app1”就是我建的虚拟目录了。
2.  User name/Passworld自然得要有管理员权限了。
3.  发布成功后,注意web.config文件,服务器的配置一般跟本地调试的配置是不同的,发布时不能使用本地文件配置。
用向导创建工程时在web.config节点下打开有两个文件,如图:

如没有,右击web.config,在弹出菜单中选择“Add Config Transforms”,“Web.Debug.Config”是用来在发布Debug版的网站的时候,用来对web.config做一些修改的,“Web.Release.Config”是用来在发布Release网站的时候,用来对web.config做一些修改的,如果你有更多的配置文件,这种“Config Transforms”会有更多个。
如需详细信息,参看链接:
http://msdn.microsoft.com/zh-cn/library/dd465326.aspx

问题:

重新生成网站页面<%@ control language="C#" autoeventwireup="true" inherits="Controls_DetailControl, App_Web_v2uvwrv1" %>头部的"App_Web_v2uvwrv1"每次重新生成都不一样..

解决方法一:单独更改需要重新上传文件的头部引用App_Web_v2uvwrv1;

解决方法二:找到BIN文件夹下随解决方案生成网站时,生成"App_Web_v2uvwrv1"对应的dll,如:"v2uvwrv1.dll",上传到服务器BLL文件夹下就OK

但每次更改CS代码网站都需要重新生成,该页面对应的App_Web_v2uvwrv1 DLL引用又不一样了,这样长期更改肯定不方便.

解决方法三:VS2010的"生成"页面上的"使用固定命名和单页程序集",勾选后,就会给每一个对应的CS文件都生成一个固定的DLL了...每单个CS文件对应的DLL只有几KB..所以,基本不会影响到程序的整体性能...当然,此地没有考虑到访问量超大的B2C 或 B2B 类似的电子商务或大型门户网站~~~

网友总结: 

VS2008发布网站时,bin 目录里为所有 cs 生成的 dll 文件,每次都是随机命名,像App_Web_g2dnx-qj.dll, App_Web_s9nor8mv.dll,这样对更新 Live 站点不方便,因动态库名变了,涉及到每个 aspx 文件每次都重新更改了对库的引用声明:


显示代码打印
1 <%@ page language="C#" autoeventwireup="true" inherits="_Default, App_Web_s9nor8mv" %>


即使有一个 cs 的小改动,由于生成的动态库名称不一样,造成所有的 aspx 文件都得重传一遍。如果能固定动态库的文件名,更新网站时就省事多了,只改了 cs 的话,重新生成 dll 文件,只需要替换这一个 dll 文件就 OK 啦。我们可以找到几种做法:

1. 在“发布网站”的选项中,勾选“使用固定命名和单页程序集”,每个页面对应的一个 dll,并且这个 dll 文件名是固定的(名字虽然看起来很随便),只要 aspx 文件名没变。这会生成大量的 dll 文件,实际应用中还没看到可取之处。

2. 把所有的 cs 文件放到 App_Code 目录中,这样所有的 cs 每次都生成到 App_Code.dll 动态库中。这时候的 aspx 文件第一行指令在新建后要更改为:


显示代码打印
1 <%@ Page Language="C#" AutoEventWireup="true"  Inherits="_Default" %> 
 或者:

显示代码打印
1 <%@ Page Language="C#" AutoEventWireup="true"  Inherits="_Default, App_Code" %> 
 

这样发布的时候,对 cs 的小改动只需替换一个 App_Code.dll 文件即可。在不使用 CodeFile 属性时,VS 没理由要修改你的 aspx 文件头。

3. 第三种办法,其实与前一种十分类似,如果觉得把 aspx 对应的 cs  文件放到 App_Code 目录中有点唐突,那么为当前解决方案新加一个 Class Library 项目,例如 ClassLibrary1,把 aspx 的 cs 文件都放到这个工程中吧,相应的 aspx 文件指令就是:

显示代码打印
1 <%@ Page Language="C#" AutoEventWireup="true"  Inherits="_Default" %>


或者:

显示代码打印
1 <%@ Page Language="C#" AutoEventWireup="true"  Inherits="_Default, ClassLibrary1" %>


小改动替换 ClassLibrary1.dll 即可,同理在不使用 CodeFile 属性时,VS 没理由要修改你的 aspx 文件头。只有 cs 文件也要放服务器上,由 Asp.Net 来编译程序时,CodeFile 指令才是有其作为的。

4. Web Deployment Projects with Visual Studio 2008下载地址:
http://download.microsoft.com/download/0/5/b/05b4424b-5b9b-4961-8ec6-91e9f1741b2d/WebDeploymentSetup.msi,安装文件十分小, 686K。

简单操作如下:

1) 下载后直接安装,安装完后打开VS2008;

2) 在[生成]->[发布网站]下面会多出一项[Add Web Deployment Project], 也可在要发布的网站项目上点右键.直接选取[Add Web Deployment Project],弹出属性对话框后. 设置好指定名称(如 WebSite1_deploy)和存放目录(c:\target), 添加后, 
以看到当前解决方案中多了一项( WebSite1_deploy), WebSite1_deploy 有很多其它属性可以设置,其中有一重要的默认选项:

Merge all outputs to a single assembly

Assembly name: 是 WebSite1_deploy.

3) 在刚添加的方案中点右键->[生成], 或者是对 WebSite1_deploy 进行 Build 都会在前面指定的目录(c:\target) 中生成可发布的文件的目录了。进到 c:\target 目录中,翻一下你就会发现你的 Web 项目中所有的 cs 文件,包括 aspx 关联的和 App_Code 中的 css 文件都编译到 WebSite1_deploy.dll 文件中去了。aspx 文件的头部是:

显示代码打印
1 <%@ page language="C#" autoeventwireup="true" inherits="Default, WebSite1_deploy" %>


只要 WebSite1_deploy.dll 文件名是固定的,aspx 的声明部分也总是不变的,所以每次只是对 cs 文件的修改补,只需换个 WebSite1_deploy.dll 文件就行啦。

相比于第二、三种方法,只需一次设置,用不着每建一个 aspx 文件对代码文件进行搬动,还得改改 aspx 文件的声明部分,而且对于 Web Site 也能构建出 DEBUG 的版本出来,所以这应该是终极的。

======================================================

在用VS2008发布网站项目时,默认生成bin目录下的.dll文件名是随机命名的;  
如果要固定生成文件名如何固定呢?
有以下两种方案:
一、每个页面的程序集分别生成对应的dll; 方法:在“发布网站”的选项中,勾选“使用固定命名和单页程序集”

二、整个站点的程序集都生成为一个文件;方法:需下载MS提供的插件,经过简单的设置可生成自定义的文件名(.dll): 
1.下载后直接安装,安装完后打开VS2008;
2.在[生成]->[发布网站]下面会多出一项[Add Web Deployment Project],也可在要发布的网站项目上点右键.直接选取[Add Web Deployment Project],弹出属性对话框后.设置好指定名称和存放目录添加后,可以看到当前解决方案中多了一项,有很多其它属性,就自己去设置了;
3.在刚添加的方案中点右键->[生成],就会生成相应文件和目录了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_852333.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何将JSP的网页部署到网上变成网站

我们都知道我们做的JSP项目&#xff0c;JSP网页只能在本地&#xff08;自己电脑&#xff09;或者局域网&#xff08;内网&#xff09;访问&#xff0c;如何让所有人都能访问呢&#xff1f; 一. 常见有几大建站语言&#xff0c;有php&#xff0c;ASP&#xff0c;ASP.NET&#…

如何将JSP的网页部署到网上变成网站

我们都知道我们做的JSP项目&#xff0c;JSP网页只能在本地&#xff08;自己电脑&#xff09;或者局域网&#xff08;内网&#xff09;访问&#xff0c;如何让所有人都能访问呢&#xff1f; 一. 常见有几大建站语言&#xff0c;有php&#xff0c;ASP&#xff0c;ASP.NET&#xf…

从个人网站到淘宝网 仰观Java时代淘宝的技术发展(1)

转载自&#xff1a; http://developer.51cto.com/art/201204/327050.htm 从2003年的一个个人对个人&#xff08;C2C&#xff09;的商品交易网站到如今的淘宝网&#xff0c;其实在作为个人网站发展的时间里并不长。那么在这段时间里&#xff0c;淘宝究竟是如何发展的呢&#x…

从个人网站到淘宝网 仰观Java时代淘宝的技术发展(2)

FROM: http://developer.51cto.com/art/201204/327050_1.htm 从2003年的一个个人对个人&#xff08;C2C&#xff09;的商品交易网站到如今的淘宝网&#xff0c;其实在作为个人网站发展的时间里并不长。那么在这段时间里&#xff0c;淘宝究竟是如何发展的呢&#xff1f;在这篇…

从个人网站到淘宝网 仰观Java时代淘宝的技术发展(3)

FROM&#xff1a; http://developer.51cto.com/art/201204/327050_2.htm 从2003年的一个个人对个人&#xff08;C2C&#xff09;的商品交易网站到如今的淘宝网&#xff0c;其实在作为个人网站发展的时间里并不长。那么在这段时间里&#xff0c;淘宝究竟是如何发展的呢&#x…

从个人网站到淘宝网 仰观Java时代淘宝的技术发展(4)

FROM: http://developer.51cto.com/art/201204/327050_3.htm 从2003年的一个个人对个人&#xff08;C2C&#xff09;的商品交易网站到如今的淘宝网&#xff0c;其实在作为个人网站发展的时间里并不长。那么在这段时间里&#xff0c;淘宝究竟是如何发展的呢&#xff1f;在这篇…

从个人网站到淘宝网 仰观Java时代淘宝的技术发展(5)

FROM: http://developer.51cto.com/art/201204/327050_4.htm?1334978897 从2003年的一个个人对个人&#xff08;C2C&#xff09;的商品交易网站到如今的淘宝网&#xff0c;其实在作为个人网站发展的时间里并不长。那么在这段时间里&#xff0c;淘宝究竟是如何发展的呢&#…

从个人网站到淘宝网 仰观Java时代淘宝的技术发展(6)

FROM&#xff1a; http://developer.51cto.com/art/201204/327050_5.htm 从2003年的一个个人对个人&#xff08;C2C&#xff09;的商品交易网站到如今的淘宝网&#xff0c;其实在作为个人网站发展的时间里并不长。那么在这段时间里&#xff0c;淘宝究竟是如何发展的呢&#x…

爬动漫网站数据_通过这三种动漫爱上数据科学和技术

爬动漫网站数据Yes, it might seem weird to mention anime, data science, and technology in the same breath. But you might be surprised to learn that there’s quite a deep connection across these domains. I am interested in all three (along with reading, list…

网站文件下载代码

效果图&#xff1a; 页面视图代码&#xff1a; <div style"float: right; padding-right: 5px;">Excel模板&#xff1a;Html.ActionLink("下载模版.xls", "GetFile") </div> 控制器代码&#xff1a; //下载模板public FileResult Ge…

【闲趣】CSDN RSS订阅:将你的博客订阅至个人网站

文章目录引言RSS是什么将CSDN博客订阅至我的网站将【知乎每日精选】订阅到我的网站我不是程序员&#xff0c;我怎么订阅RSS订阅地址RSS订阅器RSS实战&#xff1a;Outlook订阅CSDN引言 在翻阅个人文章的时候发现了个不起眼的东西&#xff0c;我好像在别的地方也见过这个标识。 …

英语老师不想让你知道的一些网站

1、练习听力美国国家公共广播电台NPR&#xff1a;http://www.npr.org/特点&#xff1a;标准美式英语。建议&#xff1a;每天花三十分钟左右&#xff0c;反复听英语广播&#xff0c;这是听力过关的必经之路。点击网页中左边“BROWSE TOPICS”下面的“News”选项。选择自己有兴趣…

Java开源建站工具

美国程序员Jon Scott Stevens&#xff0c;公布了他的创业公司所使用的开发工具清单。 他的语言平台是Java&#xff0c;开发项目是一个网站&#xff08;还未上线&#xff09;。所用到的工具都是开源的&#xff0c;可以免费得到。 在目前的创业者之中&#xff0c;用Java作为网站…

如何利用云服务器搭建个人网站

你是否想要搭建一个网站&#xff0c;却苦苦找不到方法&#xff0c;你是否看到别人搭建的网站&#xff0c;自己羡慕不已&#xff0c;今天&#xff0c;就教大家来搭建一个简单的个人网站。 在这里&#xff0c;我采用的是腾讯云服务器搭建的。首先&#xff0c;需要注册腾讯云账号&…

微信域名防屏蔽防封系统,轻松微信中域名网站被屏蔽被封的问题

做微信营销活动&#xff0c;域名没被封过&#xff0c;那你的营销人生肯定是不完整的。如果做到微信域名防封呢&#xff1f;这就要借助一些工具来实现有效的防封措施了。 第一步 你需要有一个微信域名检测接口&#xff0c;自己开发或是购买都可以。 第二步 配置你的程序&#xf…

【Vue项目心得笔记】电商网站的“面包屑”

标题说的“面包屑”是下图所示的小方块&#xff0c;可以方便的筛选用户需要的物品的各种属性。 利用vue设计出这种面包屑需要很多的请求 面包屑包括在主页全部商品分类点击的面包屑&#xff0c;输入关键字产生的面包屑&#xff0c;点击下方品牌产生的面包屑&#xff0c;还有点…

在阿里云服务器上使用Nginx部署https协议的网站

前写过一篇文章是在阿里云服务器上用Apache切换https协议&#xff1a;将博客迁移阿里云并且切换成https解析的过程 这一次&#xff0c;换成使用Nginx来部署&#xff0c;相比之下&#xff0c;比Apache的配置要简单一些 如何申请SSL证书就按下不表了&#xff0c;非常简单&#xf…

安卓如何将edittext获取到数子传到另一个页面处理_白杨SEO:网站聚合页面是什么、好处及怎么做?重复页怎么处理?【收藏】...

前言&#xff1a; 这是白杨SEO公众号原创第 118 篇。为什么想到写这个呢&#xff0c;在上周星期天&#xff08;12.22日&#xff09;白杨SEO年终线下交流沙龙中有嘉宾提到这个聚合页面&#xff0c;看很多新人不太懂&#xff0c;所以这篇就来写写哈~说明下&#xff0c;大家都知道…

jquery set长度_从零做网站开发:基于Flask和JQuery,实现表格管理平台

摘要&#xff1a;本文将为大家带来基于Flask框架和JQuery实现管理平台网站的开发功能。【写在前面】你要开发网站&#xff1f; 嗯。。会Flask吗&#xff1f; 什么东西&#xff0c;没听过。。。会JQuery吗&#xff1f; 是python的库吗 &#xff1f;那你会什么&#xff1f; 我会F…

如何让传统ASP.NET网站在Docker中运行

本文主要描述如何让传统ASP.NET网站在Docker中运行&#xff0c;侧重Docker image 搭建。 使用条件&#xff1a; Docker for windows 用户切换到Windows 容器模式Windows Server 2016 用户 开启 Windows Container 关于Docker for windows&#xff0c;nanoserver,Windows Cont…