标签:.net 4.0
开发程序的时候,通常我们是在Visual Studio 里测试,默认使用的是Visual Studio Development Server(Cassini),使用这个可以让我们开发测试工作更容易,但是在IIS上可能不一定能够正常工作。所以,结果可能是在Visual Studio 里运行正常,但是一旦部署到IIS上就会出错。
你可以通过下面一些方法来测试确保你的程序没问题:
本章节演示的是第二种方式,第三种方式可以在第七章尾部讲到,另外本章节的底部有第一种方式需要用的资源连接地址。
提醒:如果根据本章节所做的操作出现错误信息或一些功能不正常的话,请务必check Troubleshooting页面。
安装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才能运行的错误了。
你必须先安装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只会安装剩余的部分。
安装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上了。
使用Visual Studio 2010和Web Deploy部署有几种方式:
前面的章节都提到了这三种方式的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项目的首页了。
打开浏览器访问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 原创文章,未经博主允许不得转载。
微软ASP.NET站点部署指南(5):部署到IIS上作为测试环境
标签:.net 4.0
原文地址:http://blog.csdn.net/u013141940/article/details/46887889