目标:了解部署过程,掌握部署中出现问题该如何处理。

部署网站往往是一件麻烦事,因为在安装部署的过程中,经常有许多步骤要运行,对于许多不太熟悉IIS/SQL的新手来说,部署网站编程一件非常困难且危险的事。Visual Studio 2012在ASP.NET网站部署方面提升了不少能力,有助于让你将现有网站快速且简便地发布到远程的IIS服务器上,而免除了许多繁杂的设置程序。

要部署到IIS,首要动作必须是先安装IIS功能,若要运行ASP.NET MVC 4,则还必须安装.NET Framework4.0以上版本。

1.安装IIS功能

如果你用的是Windows 7或Windows 8操作系统,可以通过“控制面板”中的“开启或关闭Windows功能”进行安装,选中“Internet信息服务”选项,以及“应用程序开发功能”选项中的ASP.NET。

从Windows7的“开启或关闭Windows功能”安装ASP.NET只会安装.NET3.5 SP1,若要运行ASP.NET MVC4.0网站,则必须安装.NET Framework4.0以上版本。

2.Web一键式发布

VS2012提供了“Web一键式发布”工具栏,只要创建“发布设置”之后,即可用“单键”将网站安装或更新完成,非常神奇且好用。

在VS2012的工具栏上单击鼠标右键,在弹出的快捷菜单中选择“Web一键式发布”命令即可开启“Web一键式发布”工具栏,如下图。

开启“Web一键式发布”工具栏后,就新增一个新的发布设置,如下图。

VS2012的“Web一键式发布”功能支持多种发布方法,其中包括Web Deploy、Web Deploy包、FTP、文件系统与常规的FPSE(FrontPage Server Extension)等,如下图所示。

(1)使用Web Deploy部署

要安装网站到本机IIS,使用Web Deploy是最有效率的方法,具体设置如下图。

接着单击“下一步”按钮继续设置其他参数,如下图。

通常有规律的管理团队,都会设置多个不同的方案配置,以便切换“开发环境”与“正式环境”的设置。在“设置”界面中,可以指定“配置”选项。如果指定Release配置,即便当前选择的是Debug配置,VS也会帮你自动切换到Release配置并编译整个网站,最后再将这个编译好的网站发布到远程的IIS中,网站部署的流程被自动化,相应的发生错误的机会就降低了。

在“配置”设置中,还有个“删除目标上的附加文件”选项。在发布网站之前,会先移除IIS站点目录中的所有文档,然后才发布更新文档。

因为开发环境的数据库连接参数与正式环境的数据库连接参数往往不太一样,因此可以在“配置”中的设置数据库。可以勾选“在运行时使用此连接字符串(更新目标web.config)”选项,用这里指定的连接字符串,修改Web.config配置文件内的数据库连接字符串。

接着单击“下一步”按钮进入“预览”设置界面,如下图。

“预览”功能可以将这次要发布到IIS站点的所有文档列出来,并且明确告知你这次发布的动作会有多少文档被新增、删除或更新,如下图。

最后单击“发布”按钮,这些准备发布的文档就会成功地部署到IIS里。

上述发布设置虽然感觉有些复杂(跟以前相比已经简单很多),但你只需设置一次,当日后在项目中有任何文档被新增、删除或更新时,只要在“Web一键式发布”工具栏上单击“发布Web”按钮,如下图,网站所有的异动就会自动发布到IIS上,非常方便且直观。

最后就可以用http://localhost/App1http://192.168.1.101/App1网址,浏览该网站了。

(2)使用文件系统部署

操作过程见视频。

3.可能出现的错误

(1)发生NEED ELEVATED TO RUN MSDEPLOY的警告消息

如果VS运行在UAC(用户账户控制)状态下,在验证连接时,就会发生NEED ELEVATED TO RUN MSDEPLOY的警告消息。这时可关掉VS,“以管理员身份运行”的方式重新启动VS,这样的权限才能发布网站到本机的IIS上。

(2)遇到“预览失败”错误

如果遇到“预览失败”错误,可能是由于IIS的应用程序池中,默认网站的.NET Framework版本不对,将2.0修改为4.0,如下图。

(3)发生错误处理程序“ExtensionlessUrlHandler-Integrated-4.0”

如果发生错误处理程序“ExtensionlessUrlHandler-Integrated-4.0”,可能是需要用aspnet_regiis注册4.0框架,然后用4.0的Class池,就可以运行4.0的web项目了。以管理员方式启动“VS2012开发人员命令提示”,具体操作如下图。

(4)出现“用户 'IIS APPPOOL\DefaultAppPool' 登录失败”错误

如果出现“用户 'IIS APPPOOL\DefaultAppPool' 登录失败”错误,可将IIS中Default Web Site应用程序池的高级设置-->进程模型-->标识,修改为NetworkService。

(5)直接运行带有local db数据库的网站会出错

如果没有安装sql server 2012,直接运行带有local db数据库的网站会出错。解决方法是将该数据库部署到本机的数据库上(如sql server 2008)。数据库生成脚本,可使用迁移命令,update-database –Script。

部署ASP.NET MVC项目的更多相关文章

  1. 图文详解远程部署ASP.NET MVC 5项目

    话外篇: 由于感觉自己的机器比较慢,配置不好,所以最近想把之前的项目部署到实验室的服务器上,但是由于常不在实验室,所以在想能不能远程部署.因此今天专门研究了一下具体的过程,下面和大家分享一下.本人新手 ...

  2. 图文详解远程部署ASP.NET MVC 5项目 [转载]

    话外篇: 由于感觉自己的机器比较慢,配置不好,所以最近想把之前的项目部署到实验室的服务器上,但是由于常不在实验室,所以在想能不能远程部署.因此今天专门研究了一下具体的过程,下面和大家分享一下.本人新手 ...

  3. 1.2 认识ASP.NET MVC项目结构

    1.开发环境 操作系统:xp.vista.windows 7.windows 8.windows server 2003|2008|2008R2|2012: 集成开发环境IDE: Vsiual Stu ...

  4. 基于BUI开发Asp.net MVC项目

    因工作性质参于并开发过一些Web应用程序,前端项目框架也用了不少,比如MiniUI.ExtJS.以及定制的项目前端框架.无意中看到BUI前端框架,第一眼就被它的优雅布局所吸引.简洁的项目门户Banne ...

  5. asp.net mvc项目远程发布到windows server服务器

    文章参考 自学MVC看这里——全网最全ASP.NET MVC 教程汇总 图文详解远程部署ASP.NET MVC 5项目 配置Web部署处理程序 设备及环境 一台装有windows server 201 ...

  6. IIS部署asp.net mvc网站

    iis配置简单的ASP.NET MVC网站编译器:VS 2013本地IIS:IIS 7操作系统:win 7MVC版本:ASP.NET MVC4sql server版本: 2008 r2 打开VS 20 ...

  7. AngularJS2 + ASP.NET MVC项目

    环境:VS2015, NodeJS:v 6.5, npm: v3.10, AngularJs 2 通过将ASP.NET MVC项目与Angualr 2官网上的quick start整合的过程中遇到些问 ...

  8. 远程调试 ASP.NET MVC 项目

    Visual Studio 支持从一台计算机到另一台设备的远程调试.进行远程调试时,主机可以是任何支持 Visual Studio 的平台.远程设备可以是 x86.x64 或 ARM 平台. 本文将指 ...

  9. 习题-任务2初始ASP.NET MVC项目开发

    一.选择题 1.在ASP.NET MVC项目的RouteConfig.cs文件中,(    )方法注册了默认的路由配置. A.RegisterMap    B.RegisterRoutes    C. ...

随机推荐

  1. kali nessus 安装插件失败解决方法

    code码获取: http://www.tenable.com/products/nessus/select-your-operating-system 首先切换到nessus安装目录下: 1.nes ...

  2. [转] iOS多线程编程之NSOperation和NSOperationQueue的使用

    <iOS多线程编程之NSThread的使用> 介绍三种多线程编程和NSThread的使用,这篇介绍NSOperation的使用. 使用 NSOperation的方式有两种, 一种是用定义好 ...

  3. IOS 取值控件(UIPicker)的使用方法

    1.简单地取值控件示例 我们要做的一个UITextFiled,当点击UITextFiled,出现一个UIPick取值的页面,可以选择性别,在viewDidLoad中写下 //sexPicker UIP ...

  4. JBoss Jopr

    http://rhq.jboss.org/ https://issues.jboss.org/browse/JBPAPP6-947 挺好的网站: http://outofmemory.cn/code- ...

  5. 今天刚申请成为Uber司机 已经接了5单了....大家有什么想问的吗?

    今天刚申请成为Uber司机  已经接了5单了....大家有什么想问的吗? 滴滴快车单单2.5倍,注册地址:http://www.udache.com/如何注册Uber司机(全国版最新最详细注册流程)/ ...

  6. 在后台获取Textarea控件的值

    使用Request.Form方法 1.在前台设置name 属性 <textarea name="Content">hdjfhjdfhdj</textarea> ...

  7. 【原】Spring和Dubbo整合案例和过程

    Dubbo是Alibaba开源的分布式服务框架,它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解耦合(或者最大限度地松耦合).从服务模型的角度来看,Dubbo采用的是一种非常简单的模 ...

  8. HDU 1222 Wolf and Rabbit(gcd)

    HDU 1222   Wolf and Rabbit   (最大公约数)解题报告 题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid= ...

  9. char*与char[]

    char *s1="hello";   // 指向常量区 char s2[]="hello";   // 指向数组的内存空间 char *s1 的s1是指针,指 ...

  10. json在PHP中应用技巧

    一.json_encode() 该函数主要用来将数组和对象,转换为json格式.先看一个数组转换的例子: $arr = array ('a'=>1,'b'=>2,'c'=>3,'d' ...