环境:MVC3.0,IIS7

Mvc3.0的部署除像正常部署aspx程序一样外,另外还需要注意的几点:

1. 安装MVC3.0

    确保服务器上安装了MVC3.0,默认版本是“3.0.20105.0”

2. MVC版本一致性问题(重要)

此类问题会引起一堆譬如CS1705,CS0433类的问题,我就是碰到了这种问题,所以就这个问题详细说明一下:

此问题需要查看你本机开发时用的mvc类库版本与服务器上所安装的mvc类库版本是否一致,即使大版本号都是3.0,而小版本号不一致也会导致此类问题

MVC的版本号可通过控制面版上“Microsoft ASP.NET MVC 3”一行后面的版本来确定,我本机上的版本是“3.0.50813.0”,而服务器上的版本却是“3.0.20105.0”,因此就出现了版本不一致的问题

默认安装MVC3后的版本是“3.0.20105.0”,而版本“3.0.50813.0”是Microsoft针对MVC安全性发布的一个更新补丁包,如果你是刚装的mvc,一般情况下“3.0.20105.0”,过段时间通过windows的自动更新可能就会变成“3.0.50813.0”,所以这个版本问题不容易被发现

针对MVC的安全补丁说明:MS14-059 (KB2990942)

补丁地址: http://www.microsoft.com/zh-CN/download/details.aspx?id=44533

此补丁是一个集合补丁,里面包含了对 MVC 2.0、MVC 3.0、MVC 4.0、MVC 5.0 和 MVC 5.1的补丁

如果只需针对MVC3.0打补丁,则只需通过选择更新相应的补丁包即可,针对MVC3.0补丁包的名称其实为:KB2993937

由此即可解决版本问题

其它网上总结的也需要注意的,我没有碰到或者是有些配置本已集成了的:

1. 设置System.Web.Mvc.dll复制到本地(重要)

在VS的引用中右键System.Web.Mvc.dll,选择“属性”->“复制到本地”选择true,重新编译并发布

其实就是要带着本机的System.Web.Mvc.dll发布

我没有这么做,网站仍然可以访问,不过这条应该很重要,建议发布mvc时选择这项

2. 设置“ISAPI和CGI限制”

左键点击IIS根结节,在右侧的功能区选择“ISAPI和CGI限制”,点开,将ASP.NET v4.0.30319设置为允许,如果是64位系统应该有两条记录,一条是64位的,一条是32位的,反正我的都是不允许也照样可以

3. 检查“处理程序映射”

检查“处理程序映射”,看里面是不是有以下这三项:

ExtensionlessUrlHandler-Integrated-4.0

ExtensionlessUrlHandler-ISAPI-4.0_32bit

ExtensionlessUrlHandler-ISAPI-4.0_64bit

如果缺少请在命令行中运行:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i

我的默认是有这三项的

4. 设置“处理程序映射”

左键点击网站,在右侧功能区选择“处理程序映射”,点开,在右侧点“添加通配符脚本映射”,添加如下内容:

请求路径:*

可执行文件:C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll

名称:可自己决定,一般填mvc3即可

我的这项也没有设置,网站仍然可以使用

MVC IIS环境部署注意事项的更多相关文章

  1. Windows Server 2008 R2 + IIS 环境部署Asp.Net Core App

    Windows + IIS 环境部署Asp.Net Core App   环境:Windows Server 2012, IIS 8, Asp.Net Core 1.1. 不少人第一次在IIS中部署A ...

  2. Windows + IIS 环境部署Asp.Net Core App

    环境:Windows Server 2012, IIS 8, Asp.Net Core 1.1. 不少人第一次在IIS中部署Asp.Net Core App的人都会遇到问题,会发现原来的部署方式无法运 ...

  3. IIS上部署MVC网站,打开后ExtensionlessUrlHandler-Integrated-4.0解决方法IIS上部署MVC网站,打开后500错误

    IIS上部署MVC网站,打开后ExtensionlessUrlHandler-Integrated-4.0解决方法 IIS上部署MVC网站,打开后500错误:处理程序“ExtensionlessUrl ...

  4. IIS上部署MVC网站,打开后ExtensionlessUrlHandler-Integrated-4.0解决方法

    IIS上部署MVC网站,打开后ExtensionlessUrlHandler-Integrated-4.0解决方法 IIS上部署MVC网站,打开后500错误:处理程序“ExtensionlessUrl ...

  5. IIS上部署MVC网站,打开后ExtensionlessUrlHandler-Integrated-4.0解决办法

    IIS上部署MVC网站,打开后ExtensionlessUrlHandler-Integrated-4.0解决方法 IIS上部署MVC网站,打开后500错误:处理程序“ExtensionlessUrl ...

  6. ASP.NET MVC 使用MSBuild部署的几个注意事项

    ASP.NET MVC 使用MSBuild部署的几个注意事项 做新项目,当时参考NopCommerce的结构,后台Nop.Admin是一个独立的Area Web Site,但部署的时候发现,使用一键发 ...

  7. 有了SSL证书,如何在IIS环境下部署https?【转载】

    昨天各位小伙伴都很开心的领取了自己的SSL证书,但是大部分小伙伴却不知道如何部署,也许是因为第一次接触SSL这种高端的东西吧,不过个人觉得就是懒懒懒...本来小编也挺懒的,但是答应了各位小伙伴的,那么 ...

  8. IIS环境下部署项目

    1.环境部署 1.1安装IIS7 进入控制面板,选择"程序和功能",进入如下页面后,点击"Turn Windows features on or off". 找 ...

  9. IIS环境配置和项目部署

    本人实际工作项目中IIS部署,亲测可用~~ 具体步骤: 1.打开控制面板 2.打开程序和功能 3.打开或关闭Windous功能 然后勾选相关内容: 4.添加应用程序 先打开iis管理器页面(控制面板— ...

随机推荐

  1. 我的2013 Q.E.D

    "旧历的年底毕竟最像年底,村镇上不必说,就在天空中也显出将到新年的气象来.灰白色的沉重的晚云中间时时发出闪光,接着一声钝响,是送灶的爆竹:近处燃放的可就更强烈了,震耳的大音还没有息,空气里已 ...

  2. 拥抱.NET Core,跨平台的轻量级RPC:Rabbit.Rpc

    不久前发布了一篇博文".NET轻量级RPC框架:Rabbit.Rpc",当初只实现了非常简单的功能,也罗列了之后的计划,经过几天的不断努力又为Rabbit.Rpc增加了一大波新特性 ...

  3. iOS系列 基础篇 05 视图鼻祖 - UIView

    iOS系列 基础篇 05 视图鼻祖 - UIView 目录: UIView“家族” 应用界面的构建层次 视图分类 最后 在Cocoa和Cocoa Touch框架中,“根”类时NSObject类.同样, ...

  4. hadoop-2.7.1伪分布环境搭建

    1.准备Linux环境  1.0 点击VMware快捷方式,右键打开文件所在位置 -> 双击vmnetcfg.exe -> VMnet1 host-only ->修改subnet i ...

  5. 华为手机浏览器不支持PUT提交方式的解决方案

    最近所在技术团队在开发webapp项目,前端angularjs+后端.Net MVC API,API登录接口定义为PUT提交方式,在做兼容测试时发现UC.safari.微信浏览器下都可以登录,但在华为 ...

  6. 基于keepalived双主模型的高可用LVS

    背景知识: keepalived:Keepalived的作用是检测web服务器的状态,如果有一台web服务器死机,或工作出现故障,Keepalived将检测到,并将有故障的web 服务器从系统中剔除, ...

  7. Java程序设计之Constructor

    插入段代码,下次回忆吧. 先新建一个Person类,代码如下: public class Person { private String name ; private int age; public ...

  8. 第10章 Shell编程(2)_字符截取命令

    2. 字符截取命令 2.1 cut字段提取命令(grep提取行,cut提取列) (1)cut命令:#cut [选项] 文件名 选项: -f 列号:提取第几列: -d 分隔符:按照指定分隔符分割列,默认 ...

  9. 数据库 数据库SQL语句三

    转换函数 to_char()字符串转换日期函数 --查询大于某个日期的员工信息 select * from emp where hiredate>to_date('1980-02-12','yy ...

  10. 解读ASP.NET 5 & MVC6系列(14):View Component

    在之前的MVC中,我们经常需要类似一种小部件的功能,通常我们都是使用Partial View来实现,因为MVC中没有类似Web Forms中的WebControl的功能.但在MVC6中,这一功能得到了 ...