该系列教程指导你如何将一个ASP.NET web 程序部署到第三方的主机提供商机器上。部署的方式用的是Visual Studio的one-click发布。首先部署到开发环境的IIS上进行测试,然后再部署到生产环境(第三方的主机提供商)上。
该系列总共包括11个章节和一个troubleshooting章节:看来内容很多,有点晕吧?其实,生产环境部署的基本流程在本系列里只占很小一部分,但是在现实的环境中,了解一些看似很小但非常重要的信息是非常必要的——例如,设置目标服务器上某个文件夹的权限。因此,在这个教程中,我们包含了很多这种信息,希望你能利用这些信息成功部署你的系统。
该系列教程是连续的,不是独立章节的。不过如果某个章节确实和你没影响的话,也可以直接学习下一章(不过,学习的时候可能会有些影响)。
阅读对象
该教程是为中小型公司的ASP.NET开发人员准备的,或者是如下情况:
企业环境里,几乎都使用了持续集成,并且生成环境都是自己的服务器。不同的人有不同的角色。关于这种情况的部署我们将来可能会有另外的教程去讲,与此同时,关于更多企业部署的信息可以访问:ASP.NET Deployment Content Map。
任何规模的组织都可以将程序部署到Windows Azure云上,关于Windows Azure部署的文章,请参考:Cloud Development。
教程中的第三方主机提供商
该教程指导你如何在一个主机提供商那里建立账户,这里我们特地选定了一个提供商以便可以很直观的来体验一下部署的流程。每个提供商都会不同的功能以及部署的经验技巧。该教程描述的流程是整个流程中非常通用的步骤。
我们使用的提供商是Cytanium.com,在教程里使用不代表认可或者推荐该提供商。
Web Application项目和Web Site项目
Contoso University是一个Visual Studio web application项目,该教程的大部分部署方法和工具都不是基于Web Site项目的,关于如何部署Web site项目,请访问:ASP.NET Deployment Content Map。
ASP.NET Web Forms和ASP.NET MVC
Contoso University是一个ASP.NET Web Forms项目,但该教程的所有的东西也都适用于ASP.NET MVC项目,因为Visual Studio MVC项目是另外一种形式的web application项目。唯一不同的是,如果你的主机不支持ASP.NET MVC或者不支持你的MVC版本,那你需要做额外的工作将MVC的程序集部署到你的bin目录下。
编程语言
Sample程序使用C#开发,但不要求你会C#,教程里展示的部署技术和语言无关。
Troubleshooting
部署的时候如果发现问题,或者部署的站点运行不正常而错误消息里又找不到线索,或者不能说明如何解决它。为了帮你解决一些常见的问题,第12章提供了troubleshooting 引用列表,如果在看教程做练习的时候发现错误,请务必check该章节。
欢迎留言
欢迎大家的留言,当教程进行更新的时候,会把大家的一些好的建议和提出的错误都更新到新版本里。
开始之前,确保你的电脑安装了如下软件:
为了完成程序,可能还需要其他软件,不过没必要现在都安装。如果需要用到的话,该教程会告诉你安装的步骤。
下载Sample程序
该教程部署的程序叫Contoso University,已经帮你创建好了。它是一个非常简单的大学网站,和Entity Framework tutorials on the ASP.NET site教程里的程序是一样的。
如果上述需要软件都安装好了,下载Contoso University程序。压缩包里包含了该项目的多个版本和该教程的英文版本PDF文件。开始学习用ContosoUniversity-Begin,想看到最终程序的结果请用ContosoUniversity-End,想看第10章迁移数据到正式的SQL Server以后的效果请使用ContosoUniversity-AfterTutorial09。
你可以保存ContosoUniversity-Begin项目到任何目录来用,默认目录是:C:\Users\<username>\Documents\Visual Studio 2010\Projects
(教程里的截图显示的项目是放在C盘的root目录里)
启动Visual Studio2010,打开项目,Ctrl+F5运行。
通过网站上的menu bar你可以访问如下功能:
下面是比较典型的页面:
下面列出的程序功能将影响到如何部署以及必须部署的内容,在接下来的章节,会对每个功能都详细讲解:
本章节,你下载了sample程序并且查看了影响部署的程序功能,接下来的章节是准备设置一些部署的参数使得部署的一部分步骤自动运行,其它的则需要手工来做。