微软ASP.NET站点部署指南(5):部署到IIS上作为测试环境

1.  综述

开发程序的时候,通常我们是在Visual Studio 里测试,默认使用的是Visual Studio Development Server(Cassini),使用这个可以让我们开发测试工作更容易,但是在IIS上可能不一定能够正常工作。所以,结果可能是在Visual Studio 里运行正常,但是一旦部署到IIS上就会出错。

你可以通过下面一些方法来测试确保你的程序没问题:

  1. 开发的时候,使用IIS Express或者正式版IIS代替默认的Visual Studio Development Server来测试程序,这样可以更能确保在IIS下少出问题。但是这个方法不能测试你的部署流程是否正确,或者验证部署结构。
  2. 部署程序到你的开发机上的IIS,然后用同样的步骤部署到生产环境,这样验证你的部署流程和是否能在生产环境运行成功。
  3. 部署到和生产环境接近的测试环境,由于生产环境是第三方的提供商,所以最理想的测试环境就是提供商开放第二个账户(仅用于测试目的),这样就可以和正式的生产环境使用一样的部署步骤了。

本章节演示的是第二种方式,第三种方式可以在第七章尾部讲到,另外本章节的底部有第一种方式需要用的资源连接地址。

提醒:如果根据本章节所做的操作出现错误信息或一些功能不正常的话,请务必check Troubleshooting页面。

2.  配置程序运行在Medium Trust上

安装IIS和部署之前,我们需要修改Web.config文件以便配置更能接近共享主机环境。主机提供商通常会让你的程序运行在medium trust级别上,那就是说有些事情是不允许做的,比如你不能访问注册表或者你程序之外的目录读写文件。本机默认情况下是运行在high trust上,也就是有些你可以做的事情在生产环境上可能做不到了。因此,为了确保部署到生产环境没问题,需要将测试环境的运行配置也改成medium trust

Web.config文件里,在system.web元素节点里添加<trust>元素,像下面一样:

<configuration>
  <!-- Settings -->
  <system.web>
    <trust level="Medium"/>
    <!-- Settings -->
  </system.web>
</configuration>

现在程序可以运行在medium trust上了,这样你可以尽早发现需要high trust才能运行的错误了。

3.  安装IIS和Web Deploy

你必须先安装IIS和Web Deploy 才能将程序部署到你开发机的IIS上。因为默认Windows 7是不安装这些组件的,如果你已经都安装了,那请忽略这个section。

强烈推荐使用Web Platform Installer安装IIS和Web Deploy,,因为会自动安装IIS的推荐配置和自动安装IIS和Web Deploy所需要的依赖软件。

使用Web Platform Installer安装IIS和Web Deploy,请使用下面的连接,如果你曾经安装过其中的一种或者是相关的依赖软件,那Web Platform Installer只会安装剩余的部分。

  • Install IIS and Web Deploy using WebPI

4.  设置默认的应用程序池为.Net4

安装IIS以后,运气IIS管理器(开始->运行,输入inetmgr,回车),确保默认程序池使用的.NET Framework版本是4。

连接Connections)面板,展开server节点选择应用程序池Application Pools),在右边的面板里,查看DefaultAppPool使用的.NET framework版本是否是v4.0,如果是,请忽略此section。

如果你只能看到2个应用程序池,并且都是.NET Framework 2.0的话,你需要在IIS里安装ASP.NET 4,然后再配置IIS才能使用。

打开一个command prompt窗口,右键选择以管理员身份运行(Run as Administrator),然后运行aspnet_regiis.exe来安装ASP.NET 4到IIS里。使用如下命令:

cd %windir%\Microsoft.NET\Framework\v4.0.30319
aspnet_regiis.exe –iru

上面的命名将会为.NET Framework 4创建2个应用程序池,但默认版本还是v2.0的。因为需要将程序部署到.NET 4的应用程序池上,所以需要修改它们的版本为NET 4。

重新运行IIS管理器,点击应用程序池,重新查看右边的面板,点击DefaultAppPool,然后在操作面板Actions)里点击基本设置Basic Settings)。

编辑应用程序池Edit Application Pool)对话框里,将.NET Framework version里的项修改成.NET Framework v4.0.30319,然后点击确定OK)。

现在就可以将程序发布到IIS上了。

5.  发布到IIS

使用Visual Studio 2010和Web Deploy部署有几种方式:

  • 使用Visual Studio one-click发布
  • 创建部署包,然后使用IIS Manager 管理控制台安装,部署包是一个.zip文件,包含了所有需要部署到IIS上的文件和元数据
  • 创建部署包,然后使用命令行安装

前面的章节都提到了这三种方式的Visual Studio自动部署设置方式。本章节用的是第一种。更多使用部署包的信息,可以查看ASP.NET Deployment Content Map。

发布之前,确保你的Visual Studio是运行在管理员模式下(开始菜单,右键Visual Studio 2010,选择以管理员身份运行)。

改变当前active的build配置是Test,你可以从工具栏选择(如下图),或者从编译(Build)菜单里的配置管理器Configuration Manager)里选择。

Solution Explorer里,右键ContosoUniversity项目,选择发布(Publish),弹出Publish Web对话框。

设置profile名称为"Test",如果没看到文本框,而是看到下拉菜单就选择new ,然后输入新名称。

Service URL里输入“localhost”

Site/application里输入"Default Web Site/ContosoUniversity"

选择上Mark as IIS application on destination。(有些情况不需要部署到IIS上,例如项目本身就不是个web程序,它仅仅包含了一些图片,XML文件等,这种情况就不用选择了,以便不建立IIS程序。)

点击发布(Publish),如果你收到如下信息框,请重新以管理员身份运行Visual Studio。

如果你关掉Visual Studio,例如以后的章节来重新打开它再发布的时候,请务必选择以管理员身份运行,如果不是管理员身份,发布程序不会提示出错框而是尝试发布,有时候可能会提示一个没有权限的错误信息。

如果是运行在管理员模式下,Output窗口会显示编译和发布成功的信息。

运行IIS管理器,在连接(Connections)面板里,你可以在默认站点(Default Web Site)下看到一个名字为ContosoUniversity的应用程序,如果之前都打开了IIS,你点击刷新(Refresh)。在操作(Actions)面板点击浏览(Browse *:80 (http))来验证是否可以打开你的首页。

不出错的话,浏览器就会显示Contoso University项目的首页了。

6.  在测试环境中测试

打开浏览器访问http://localhost/ContosoUniversity,重新运行首页,可以看到页面顶部显示的标示符是"(Test)"而不是"(Dev)"了,这就意味着Web.config的transformation结果是正确的。

打开Students页面验证部署的数据库里布包含任何students:

打开Instructors页面验证这些数据依然存在于数据库中:

Students菜单里选择Add Students,添加一个student,然后可以看到Students 页面显示了一个student,说明已经成功保存到数据库里了:

Courses菜单,选择Update Credits,因为该页面需要administrator权限,所以跳转到了Log In页,输入administrator账户信息("admin" 和 "Pas$w0rd")登录以后, Update Credits就显示了,这就验证了上个章节创建的administrator账户已经正确的部署到测试环境了。

检查Elmah文件夹是否存在并且值包含一个placeholder文件,这就验证了前面章节设置的忽略部署该文件夹的XML文件执行成功了。

打开C:\inetpub\wwwroot\ContosoUniversity 目录下的Web.config文件验证Code First数据库初始化参数值为Disabled:

现在,你成功将程序部署到你开发机的IIS上并且测试了,这验证了部署流程不仅仅只是copy程序内容(也可以排除不需要部署的内容了),另外Web Deploy也成功配置了IIS站点。下一章节你将测试另外一个还没搞定的部署任务:设置Elmah文件夹的写权限。

版权声明:本文为博主http://www.zuiniusn.com 原创文章,未经博主允许不得转载。

时间: 2024-08-09 21:45:44

微软ASP.NET站点部署指南(5):部署到IIS上作为测试环境的相关文章

微软ASP.NET站点部署指南(10):迁移至SQL Server

1.  综述 第2章的部署SQL Server Compact和第9章的部署数据库更新里解释了为什么最终要升级到完整版SQL Server .本章节将告诉你如何来做. SQL Server Express和完整版SQL Server 一旦你决定使用完整版SQL Server,你需要在开发和测试环境使用SQL Server Express 或者完整版SQL Server.在工具支持和数据库引擎功能上,SQL Server Compact 和其它版本的SQL Server都是有区别的,可以导致不同的

微软ASP.NET站点部署指南(1):部署介绍

1. 综述 该系列教程指导你如何将一个ASP.NET web 程序部署到第三方的主机提供商机器上.部署的方式用的是Visual Studio的one-click发布.首先部署到开发环境的IIS上进行测试,然后再部署到生产环境(第三方的主机提供商)上. 该系列总共包括11个章节和一个troubleshooting章节:看来内容很多,有点晕吧?其实,生产环境部署的基本流程在本系列里只占很小一部分,但是在现实的环境中,了解一些看似很小但非常重要的信息是非常必要的--例如,设置目标服务器上某个文件夹的权

微软ASP.NET站点部署指南(9):部署数据库更新

1.  综述 不管什么时候,程序都有可能像代码更新一样更新数据库.本章节你将进行数据库修改,测试,然后部署到测试环境和生产环境. 提醒:如果根据本章节所做的操作出现错误信息或一些功能不正常的话,请务必check Troubleshooting页面. 2.  给表添加新列 本小节,将修改Student和Instructor实体共同的基类Person类,添加一个birth date字段,也要在展示页面的表格上添加一个新列. 在ContosoUniversity.DAL项目,打开Person.cs在类

微软ASP.NET站点部署指南(8):部署Code-Only更新

1.  综述 初始化部署以后,你需要继续维护和更新你的站点.本章节将向你展示一个不包括数据库改变的部署升级流程.(下一章节将展示数据库改变的部署升级流程.) 提醒:如果根据本章节所做的操作出现错误信息或一些功能不正常的话,请务必check Troubleshooting页面. 2.  修改代码 为你的程序做一个简单的修改,在Instructors 列表页添加一个功能,一般选择一个Instructor的时候能够显示该Instructors 的所有课程courses. 在Instructors页面可

微软ASP.NET站点部署指南(4):配置项目属性

1.  综述 有些部署设置可以在项目属性里设置的,并且保持到项目文件里(.csproj或.vbproj). 大多数情况下,你都可以在Visual Studio 选择项目属性Project Properties,在属性窗口里设置这些参数.该章节将告诉你如何设置这些参数. 2.  项目属性窗口里配置部署参数 影响项目部署的设置参数可以在项目属性(Project Properties)窗口的Package/Publish 选项卡里设置.可以对不同的build配置设置不同的参数值,本章节将指导你查看这些

微软ASP.NET站点部署指南(2):部署SQL Server Compact数据库

1. 综述 对于数据库访问,Contoso University程序要求下面的软件必须随程序一起部署,因为不属于.NET Framework: SQL Server Compact (数据库引擎) ASP.NET Universal Providers (启用ASP.NET membership以使用SQL Server Compact) Entity Framework 4.1 (Code First) 2个数据库的数据库结构和相关的一些数据都需要部署.通常,开发系统的时候都会有一些测试数据,

微软ASP.NET站点部署指南(11):部署SQL Server数据库更新

1. 综述 本章节展示的是如何向完整版SQL Server 数据库部署一个数据库升级.与第9章的数据库升级部署有所不同(第9章是部署到SQL Server Compact数据库). 提醒:如果根据本章节所做的操作出现错误信息或一些功能不正常的话,请务必check Troubleshooting页面. 2. 给表添加新列 这个小节,做一个数据库修改和相应的代码更新,在部署到测试和生产环境之前,先在Visual Studio 里测试.修改内容是给Instructor 实体添加一个OfficeHour

微软ASP.NET站点部署指南(3):使用Web.Config文件的Transformations

1. 综述 大多数程序里都会在Web.config里设置参数,并且在部署的时候需要更改.每次都手工更改这些配置很乏味,也容易出错.该章节将会告诉你如果通过自动化更新Web.config文件来避免这些问题. 2. Web.config Transformations 与Web Deploy Parameters 有2种方式来自动化更新Web.config文件的设置:Web.config transformations和Web Deploy parameters.Web.config transfo

四 Lync Server 2013 部署指南-前端部署(1)

4.1.Lync先决条件安装 部署Lync Server 2013的前端服务器,我们需要在做前端服务器的机器上安装一些Lync必备的一些组件,具体如下: 1.安装.netframework 4.5 2.安装powershell 3.0 3.安装消息列队和桌面体验: 重启服务器以完成以上组件的安装,如下图: 4.再安装IIS的相关组件: 运行Windows Powershell,输入以下命令: Import-Module ServerManager 5.安装IIS相关组件: Add-Windows