目标框架
.NET FrameWork 版本4.5 。Windows中版本号:V4.0.30319(4.5只是4.0版本的一个补丁)。
IIS 配置
安装顺序
先安装.NET FrameWork,后安装IIS 。
安装完毕检查几个地方设置:
-
IIS .NET FrameWork版本更换。
选择版本 - IIS ISAPI以及CGI限制。将目标版本.NET 设置为允许(主要作用域URL重写模块)。
ISAPI以及CGI限制 - 处理映射程序列表。
处理映射程序列表 - IIS Temp目录权限设置。
WebConfig 相关配置节
身份验证<authentication>
<authentication mode="Forms">
<forms loginUrl="~/Account/Login" timeout="1" name="login" />
//Cookie 名称:Login
//超时时间:1分钟
</authentication>
微软默认身份验证组件。
设置身份卷票。
程序卷票过期主页,Cookie过期时间,以及cookie名称。
如果程序需要使用MVC框架默认提供的身份验证系统,请加上该配置节点。
(开发者可自己定义自己的验证体系)
一般建议:开发者不必修改,因为自定义的Cookie将会覆盖默认Cookie
编译设置<compilation>
在部署环境下将debug设置为false。不支持调试,可提升系统运行速度。
文件预览<directoryBrowse>
MVC 项目请关闭。 <directoryBrowse enabled="false">。
表示文件目录形式访问,而MVC项目不需要。
配置常见HTTP错误403
此问题表示IIS不认识应用程序的配置文件。导致HTTP运行时模块无法正确被加载。
正确解决:
- 重新注册.NET4.0到IIS
- 确认网站目录文件访问权限
- 确认引用程序池版本
- 确认处理程序 映射已经正常添加
- ISAPI筛选器已经将v4.0设置为允许
- 确认目标.NET FrameWork版本已经正确安装
- 如果还未解决,请添加以下节点到程序配置文件:
HTTP运行时<validation>
此节点默认MVC项目不进行配置。
该节使 IIS 7.0 在集成模式下运行时可使用AJAX 相关的HTTP请求相关的处理程序和模块。
<modules runAllManagedModulesForAllRequests="true">
此配置节点将指示IIS对于本网站的请求走网站默认匹配模式。
此节点不能随意添加,否则WebConfig将会出错。
百度上所有博客推荐写法都存在此问题
正确写法如下:
1.注释掉VS默认配置文件里的<Modules>节点。
2.添加<modules runAllManagedModulesForAllRequests="true"> 至注释节点前面或者后面,父节点仍然是<system.webServer>
网友评论