zoukankan      html  css  js  c++  java
  • 微软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只会安装剩余的部分。

    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文件夹的写权限。

    7.  更多信息

    关于在Visual Studio 里运行IIS或IIS Express的更多信息,请查看下面列出的资源:

    该帖提供了很多例子解释为什么使用Visual Studio Development Server (Cassini)测试不如使用IIS Express测试可靠,以及为什么在IIS Express里测试没有在IIS正式版里测试可靠的原因.

    关于Visual Studio 2010里的自动化部署工具以及关于one-click发布和部署包更多的信息,请访问:ASP.NET Web Application Project Deployment Overview

    关于主机提供商将程序运行在medium trust有可能引起的问题,请访问:Hosting ASP.NET Applications in Medium Trust

    总目录更新地址:点击访问

  • 相关阅读:
    第4月第1天 makefile automake
    第3月30天 UIImage imageWithContentsOfFile卡顿 Can't add self as subview MPMoviePlayerControlle rcrash
    第3月第27天 uitableviewcell复用
    learning uboot fstype command
    learning uboot part command
    linux command dialog
    linux command curl and sha256sum implement download verification package
    learning shell script prompt to run with superuser privileges (4)
    learning shell get script absolute path (3)
    learning shell args handing key=value example (2)
  • 原文地址:https://www.cnblogs.com/TomXu/p/2263104.html
Copyright © 2011-2022 走看看