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

部署网站往往是一件麻烦事,因为在安装部署的过程中,经常有许多步骤要运行,对于许多不太熟悉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. IOS 学习笔记(4) 控件 标签(UILabel)的使用方法

    虽说Label的中文翻译是标签标记,但它其实是一个静态文本内容的展现控件. 一般来说,UILabel只是一个只读的文本视图,开发者可以利用UiLabel来展示内容长度有固定上限的文字内容.并且,UIL ...

  2. 帝国cms语句调用

    帝国cms系统,灵动标签,有着非常强大的数据调用功能.这里为广大菜鸟站长普及一下. 我们来看这段代码. [e:loop={,,}] <li>·<a target="_bla ...

  3. 关于Delphi中二维数组的声明和大小调整(对非基本类型数据,小心内存泄漏)

    这是一个实例: procedure TMainForm.Button1Click(Sender: TObject);var  arr:array of array of string;begin  s ...

  4. 远程管理服务SSHD

    安装SSH yum install openssh

  5. MVC 优缺点

    MVC是一个架构,或者说是一个设计模式,它就是强制性使应用程序的输入,处理和输出分开.将一个应用程序分为三个部分:Model,View,Controller. 1. MVC的优点 (1) 可以为一个模 ...

  6. android 同时发送几条通知

     android 同时发送几条通知 ======= 下面是转载的文章.  同时发送几条通知把ID添加,接收的时候找到这个id就可以出来多条了. 还是不太明白或者编码实现不了的可以加我QQ. 博客很少上 ...

  7. 前端性能监控系统ShowSlow

    作者:zhanhailiang 日期:2014-11-14 1. 简单介绍 ShowSlow是开源的前端性能监控系统,提供了下面功能: 前端性能指标数据收集功能:ShowSlow原生提供了数据收集工具 ...

  8. uva Stacks of Flapjacks

                                                     Stacks of Flapjacks  题目链接:Click Here~ 题目描写叙述:     ...

  9. js如何判断一个对象是不是Array?(转载)

    js如何判断一个对象是不是Array? 在开发中,我们经常需要判断某个对象是否为数组类型,在Js中检测对象类型的常见方法都有哪些呢? typeof 操作符 对于Function, String, Nu ...

  10. [Jobdu] 题目1516 : 调整数组顺序使奇数位于偶数前面

    void diffOddAndEven(int a[], int n) { , high = n - ; int pivot; while (low < high) { == && ...