ASP.NET 网站部署 Part.2(使用 Web 部署)

news/2024/5/14 17:30:08/文章来源:https://blog.csdn.net/yanzhibo/article/details/18233705
Web 部署可以在 VS2010 里直接使用 HTTP 部署网站(此方式不可以在无项目文件的网站使用)。不要把 Web 部署和 FPSE(Front Page Server Extensions)混淆,FPSE 已经过时。

 

1. 准备 IIS

       需要添加两个额外的组件。再次打开 WebPI,在 Web 平台页签的 Web 服务器里选择“自定义”,在“部署和发布”里选择“Web 部署工具”,在管理里选中“管理服务”选项。同时选中这两项对于让部署正常工作极其重要。

       安装完成后,启动 IIS管理器,从“连接”的树控件里选择服务器项。滚动到屏幕底部,如果所有部件都已经正确安装,会看到两个新图标:管理服务、管理服务代理。

       配置并启动一个监听远程 IIS 管理请求的 Windows 服务:双击“管理服务”图标打开对话框,选中“启用远程连接”选项,单击应用,然后单击“启动”。启用远程连接,就是允许其他计算机对 IIS 执行管理工作。

       默认情况下,管理服务并不随服务器的启动自动启动。如果你希望它自动启动,则需要在“服务”工具里修改 Web Management Service 的设置:

image

 

2. 网站

       为了演示,我们使用 “ASP.NET 空 Web 应用程序”模板创建一个 VS 项目,新增一个 Default.aspx 表单,内容与上一篇文章(文件复制部署网站)中介绍一样,显示正确的 .NET 版本号。

image

protected void Page_Load(object sender, EventArgs e)
{
    Label1.Text = System.Environment.Version.Major.ToString();
}

 

3. 转换 web.config

       从开发测试到生产,很多项目都要经历一系列的部署过程,其中每一步都会牵涉不同配置的服务器。Web 部署模型有一个有用的功能,它能够在部署过程中对 Web.config 文件进行转换,使其对每一步都可用

       在解决方案资源管理器里展开 web.config,可以看到对象项目的每一个编译配置都有一系列的项,它们是 web.config 转换文件。默认情况下,VS2010 创建 Debug 和 Release 配置,但也可以使用配置管理器来添加自定义配置。也可使用配置管理器添加自定义配置。

imageimage

       在 Web 部署中,活动编译配置转换文件里的 XML 语句被应用到项目的源 web.config 来添加、修改和删除配置设置。项目部署时,转换后的设置被包含在里面,也就是说不需要为各个阶段的数据库连接手工修改连接字符串。它不仅仅是方便,还减少 在部署时由于配置错误导致环境中断的问题。

       随后我会演示配置文件可以应用的最有用的转换。每一个示例都会使用相同的源 web.config 文件,它的内容如下:

<?xml version="1.0" encoding="utf-8"?>
 
<configuration>
  <connectionStrings>
    <add name="NorthwindConnectionString" connectionString="Data Source=.\SqlExpress;
         AttachDbFileName=|DataDirectory|\Northwind.mdf;Integrated Security=True;
         User Instance=True" providerName="System.Data.SqlClient"/>
  </connectionStrings>
  
  <system.web>
    <compilation debug="true" targetFramework="4.0" />
  </system.web>
</configuration>

       它包含一个指向我们开发工作站 Northwind 数据库的连接字符串,目标框架是 .NET 4,带有调试符号。

 

1. 设置属性 

       最常见的转换是修改源 web.config 里设置的属性值。例如,修改数据库的连接字符串。这个 web.release.config 转换文件修改连接字符串,以使它指向我们的 Windows Server 2008 R2 机器:

<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
  <connectionStrings>
    <add name="NorthwindConnectionString"
      connectionString="Data Source=PC-SKYSOOT;Initial Catalog=Northwind;Integrated Security=True"
      xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
  </connectionStrings>

       如果要设置已经存在的属性,使用和源文件相同的定义并增加 TransformLocator 元素。把 Transform 设置为 SetAttributes 将把匹配的元素替换为转换后的数据,在这里是修改后的连接字符串。Locator 元素指定通过 name 属性来匹配元素,这里是 NorthwindConnectionString。当同一类型具有多个属性时,能精确指定要匹配哪个元素。

       使用 Release 配置部署项目时,转换就会被应用,安装到 IIS 的 web.config 将会包含新的连接字符串,如下所示:

<?xml version="1.0" encoding="utf-8"?>
 
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
  <connectionStrings>
    <add name="NorthwindConnectionString"
      connectionString="Data Source=PC-SKYSOOT;Initial Catalog=Northwind;Integrated Security=True"
      providerName="System.Data.SqlClient"/>
  </connectionStrings>

       简单来说,转换引擎把开发连接字符串(它使用 SQL Server Express 的附加文件)替换为了部署连接字符串(它连接到另一台服务器)。转换直到部署时才会发生,因此,即使切换编译配置并重新构建项目,开发工作站还继续使用项 目的 web.config 的值。[既然已经使用 Web 部署,那么肯定你是无权限或不该具备直接修改服务器文件的权限,那么只有在部署网站时对将要在服务器上生成的 web.config 文件预先做好处理,这就是转换引擎存在的价值]

 

2. 插入元素

       把 Transform 的值设为 Insert 为配置文件插入新元素,我们新加了一个转换,它添加第二个连接字符串,以黑体标注:

<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
  <connectionStrings>
    <add name="NorthwindConnectionString"
      connectionString="Data Source=PC-SKYSOOT;Initial Catalog=Northwind;Integrated Security=True"
      xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
  </connectionStrings>
 
  <connectionStrings>
    <add name="Connection2" connectionString="Data Source=MyServer;Initial Catalog=MyDB;
         Integrated Security=True" xdt:Transform="Insert"/>
  </connectionStrings>

       我们保留了第一个示例以演示指定多个转换的格式。部署项目将会得到如下转换后的 web.config:

<?xml version="1.0" encoding="utf-8"?>
 
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
  <connectionStrings>
    <add name="NorthwindConnectionString"
      connectionString="Data Source=PC-SKYSOOT;Initial Catalog=Northwind;Integrated Security=True"
      providerName="System.Data.SqlClient"/>
    <add name="Connection2" connectionString="Data Source=MyServer;Initial Catalog=MyDB;
     Integrated Security=True" xdt:Transform="Insert"/>
  </connectionStrings>

 

3. 替换配置节

       设置 Transform 值为 Replace,替换 web.config 的整个配置节,如下:

<system.web xdt:Transform="Replace">
  <customErrors defaultRedirect="GenericError.htm" mode="RemoteOnly">
    <error statusCode="500" redirect="InternalError.htm"/>
  </customErrors>
</system.web>

       这个转换指定 web.config 的 system.web 块整体由转换文件的内容替换。开发连接字符串仍旧被保留,但目标 Framework 版本被替换了。

 

4. 移除元素

       声明一个配置节,把它的 Transform 值设为 Remove 来移除配置节,如下:

<?xml version="1.0" encoding="utf-8"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
  <connectionStrings xdt:Transform="Remove"></connectionStrings>
</configuration>

       这个转换将移除所有连接字符串配置节.

       可以通过 RemoveAttributes 用逗号分隔的列表来移除指定的属性:

<?xml version="1.0" encoding="utf-8"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
  <system.web>
    <compilation xdt:Transform="RemoveAttributes(debug,targetFramework)"/>
  </system.web> 
</configuration>

 

发布数据库

       Web 部署另一个有用的功能是在发布项目时同时发布数据库。在部署过程中会生成一个 SQL 脚本,包含数据库架构 或 架构和数据。这个脚本被用来填充部署环境,使用这个功能要万分小心,它可能会用测试数据覆盖产品数据库

       配置数据库发布分两步进行。在项目的“包/发布 Web” 页签里选择“在包里包括全部数据库配置”来启用这个功能。

       此功能具有一定的风险,且一般不用,这里不多介绍。

 

部署网站

       在 VS 中,将解决方案配置模式改为 Release,“生成”菜单中选择“发布…”,菜单项的准确名称取决于项目名称。你会看到发布对话框,它是 Web 部署功能的核心。

       image

       在服务 URL 里输入要发布到的服务器名称。我这里是 PC-SKYSOOT。“网站/应用程序”输入框用于指定网站部署的地址,并且如我们之前解释过的,它构成客户端使用的 URL。对于这个示例,我们希望使用如下格式的 URL:

/WebsiteDeployment/WebDeploy/">http://<servername>/WebsiteDeployment/WebDeploy/

       为了得到这个效果,我们在输入框内输入了 Default Web Site/WebsiteDeployment/WebDeploy。选中标记为 IIS 上的应用程序,这和文件复制发布方式最后的转换为 Web 应用程序是一致的

       在“凭据”里,由于我是本机做IIS服务器并且以管理员身份登录,所以这里是灰色不可选的状态。如果没有从证书授权中心给 IIS 7 安装证书,则启用“允许不受信任的证书”。

       现在单击发布,如果舒心 IIS管理器,就可以看见网站已经被正确部署了,所有的 web.config 转换都已经被应用。

       imageimage

 

原文:http://www.cnblogs.com/SkySoot/archive/2013/04/01/2993665.html

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

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

相关文章

ASP.NET 网站部署 Part.3(使用 FTP 部署)

FTP 部署通过 FTP&#xff08;文件传输协议&#xff09;把项目部署到服务器。FTP 部署的优点是受到众多平台的支持&#xff0c;缺点在于相比 Web 部署可能会遇到更多的防火墙问题。 1. 准备 IIS 还是借助 Web 平台安装器&#xff0c;启动 WebPI&#xff0c;选择 “FTP 发布服务…

ASP.NET 管理网站(应用程序池、应用程序预热、扩展集成管道)

应用程序池可以对相似或相关的应用程序分组&#xff0c;简化配置和管理。同样地&#xff0c;被分配到不同应用程序池的应用程序相互独立&#xff0c;这样&#xff0c;某个应用程序池中的问题不会影响到其他应用程序池中的应用。 没有把应用程序分配到应用程序池的硬性或快速规则…

ASP.NET 管理网站(虚拟目录)

部署了网站之后&#xff0c;就可以通过 IIS 的功能来管理网站宿主和执行的方式。 创建新站点 IIS 7 能够在单台服务器上支持多个站点。要创建新站点&#xff0c;展开 IIS 管理器的树控件&#xff0c;右击“网站”&#xff0c;选择“添加网站”&#xff0c;会显示如下对话框&…

iis配置多个网站,iis绑定多个域名

iis配置多个网站,iis绑定多个域名?这个问题,现在大多数不会整VPS的朋友,都会去帮手来解决,其实,没有必要拉,小伙伴;下面我来分享一个简单的操作; 如图示&#xff1a; 可以看到&#xff0c;上面挂了两个网站&#xff0c;并且端口都是80&#xff0c;那么这个功能是如何实现的呢&…

网站重构的8点建议

1.用局部变量替换多次使用的对象 比如我们在一段代码内&#xff0c;多次使用document、window这样的对象&#xff0c;我们可以用局部变量替换他们。 var d document,w window; 原理&#xff1a;访问直接量和局部变量的速度快&#xff0c;相反&#xff0c;访问数组元素和对…

大气 html5 企业网站,高端大气HTML5科技企业网站响应式网站带后端

页面简洁简单&#xff0c;容易管理&#xff0c;DEDE内核都能使消耗&#xff1b;附带测试数据&#xff01;模板主要适消耗于&#xff0c;企业网站展现网站等。模板特点&#xff1a;1&#xff0c;模板包括首页、列表页、企业简介、以及内容页等页面&#xff0c;代码书写规范&…

浅谈Web网站架构演变过程

原文地址&#xff1a;http://www.codeceo.com/article/web-artche-changes.html#0-tsina-1-84073-397232819ff9a47a7b7e80a40613cfe1 前言 我们以javaweb为例&#xff0c;来搭建一个简单的电商系统&#xff0c;看看这个系统可以如何一步步演变。 该系统具备的功能&#xff1a; …

网站架构系列:消息队列

原文地址&#xff1a;http://www.codeceo.com/article/web-archte-message-queue.html#0-tsina-1-26189-397232819ff9a47a7b7e80a40613cfe1 一、消息队列概述 消息队列中间件是分布式系统中重要的组件&#xff0c;主要解决应用耦合&#xff0c;异步消息&#xff0c;流量削锋等问…

让网站永久拥有HTTPS - 申请免费SSL证书并自动续期

本文永久地址为什么要用HTTPS相关简介 Let’s EncryptCertbot便宜SSL 获取HTTPS证书 命令行 安装Certbot申请证书 图形化 部署HTTPS证书设置HTTP强制跳转HTTPS命令行下设置证书自动续期附&#xff1a; 其它环境下的证书部署Nginx相关命令crontab相关命令 参考文档 本文永久地址…

分享10个超棒的设计素材网站

对于设计师来说&#xff0c;在工作中遇到的最糟糕的情况&#xff0c;莫过于灵感枯竭。而解决这个问题最好的方式&#xff0c;就是多逛设计素材网站。通过这种方式&#xff0c;不仅可以欣赏其他设计师们的作品&#xff0c;让自己脑洞大开&#xff0c;而且还能收获丰富的资源&…

【首篇】我想谈谈大型网站架构

如果能够学到架构理论&#xff0c;是一件很幸福的事&#xff0c;而要是能够从0到1搭建一个完整的大型网站&#xff0c;并且&#xff0c;将其投入到生活当中&#xff0c;还能被大多数人所使用&#xff0c;则是一件很幸运的事了。 这系列博客不谈业务&#xff0c;只谈技术&#…

SEO网站标题优化

【阅读文章申明】 作者只是想把自己实践中的经验分享给大家&#xff0c;如果文章里面有在大神面前显的很低级的知识点。那么大神你可以不看&#xff0c;请不要发一些“浪费流量”“辣鸡”之类嘲讽的话&#xff0c;这也不是交流的一种方式。每一篇文章都是作者自己。截图&#x…

linux 内核位置无关,常用的设备无关启动时参数 - Linux操作系统内核启动参数详解_Linux教程_Linux公社-Linux系统门户网站...

常用的设备无关启动时参数。1、init&#xff1d;...设置内核执行的初始化进程名&#xff0c;如果该项没有设置&#xff0c;内核会按顺序尝试/etc/init&#xff0c;/bin/init&#xff0c;/sbin/init&#xff0c; /bin/sh&#xff0c;如果所有的都没找到&#xff0c;内核会抛出 k…

浏览器网站打印标签

网站通过浏览器来打印标签 文章目录网站通过浏览器来打印标签一、标签需要条码&#xff1f;二、使用前的标签打印机的配置三、使用步骤1.引入maven包2.编写生成条码的工具类3.封装调用接口&#xff0c;生成条码&#xff0c;并跳转到标签打印页面。4.页面调用浏览器的打印工具5.…

10个很棒的学习Android 开发的网站

10个很棒的学习Android 开发的网站 看到江湖旅人 写的《10个很棒的学习iOS开发的网站 - 简书》&#xff0c;所以就忍不住写Android 啦&#xff0c;也希望对大家有帮助。 我推荐的网站&#xff0c;都是我在学习Android 开发过程中发现的好网站&#xff0c;给初学者一些建议&…

VS2012发布网站详细步骤

&#xfeff;&#xfeff;1、打开你的VS2012网站项目&#xff0c;右键点击项目》菜单中 重新生成一下网站项目&#xff1b;再次点击右键》发布&#xff1a; 1、打开你的VS2012网站项目&#xff0c;右键点击项目》菜单中 重新生成一下网站项目&#xff1b;再次点击右键》发布&am…

网站出现无法连接数据库错误,Temp文件夹权限对网站的影响

服务器上几个ASP Access的网站出现无法连接数据库的问题&#xff0c;数据库文件夹的权限没有问题&#xff0c;重启IIS&#xff0c;重启服务器&#xff0c;都不能解决。 最后解决方法是&#xff0c;修改Windows下Temp文件夹的user权限&#xff0c;因为数据库的读写会在系统中产…

ASP.NET:部署网站

IIS&#xff1a;信息服务器 必须在服务器上装上IIS&#xff0c;再把做的网页放在IIS上。 “这台配制够高的电脑装了IIS之后才叫做服务器” 部署ISS的流程&#xff1a; 1.打开控制面板&#xff0c;将查看方式改为大图标&#xff0c;点击“程序和功能”&#xff0c;点击“启用…

【CSS+DIV】(3)——网上购物网站

背景&#xff1a;CSS学习已经完成了&#xff0c;这部分内容比较好玩&#xff0c;后面还分析制作了各种小例子&#xff0c;UI的内容做的十分绚丽多彩&#xff0c;如果加上后台内容就会更加完美了。目前网络上的购物网站已经越来越多了&#xff0c;淘宝、京东、当当等大型购物网站…

HTML网站世界的多姿多彩---C#

前言&#xff1a;学习HTML的时候&#xff0c;感觉特别好玩&#xff0c;同时在这些点滴中也学会了非常多的知识。下面是总结的网站的知识点&#xff0c;和大家分享一下。 &#xff08;一&#xff09;入门 1.准备&#xff1a;HTML是通用语言&#xff08;只需要有浏览器和记事本…