ASP.NET MVC 实现伪静态
1 什么是伪静态?
2 为什么要实现伪静态?
3 MVC如何实现伪静态?
通过修改配置文件和路由来实现。
在配置文件中找到system.webServer节点下面的modules节点,添加runAllManagedModulesForAllRequests="true",这是让所有的请求包括静态页面和图片,js等等都进入asp.net的管道。
然后设置路由配置:
这样一来,就可以通过下面的URL来访问页面了,光看地址是静态网页的格式,但实际上还是动态的网页。
但是runAllManagedModulesForAllRequests="true"这种方式是不好的。runAllManagedModulesForAllRequests就像 IIS Modules 和请求的一个通道开关,如果这个开关是打开的,那么访问此站点的所有请求都会进入 Modules 中进行处理,这其中就包含一些静态文件的请求,这也是最常见的一种“没必要处理”的请求,因为请求进入 Modules,那就要有相应的程序进行处理,这就造成没必要的性能开销,因为静态文件只是获取展示,完全没必要进行 Modules 处理,小的站点无所谓,当一些很大 PV 站点也这样做的时候,就会对 IIS 的 Modules 程序处理造成一些“压力”
用这种方式做伪静态后,如果有真的静态页面,一定不要将静态页面放在view文件夹下。否则会去执行controller里面的action,从而导致无法找到资源。
现在开发完成了,而且跑代码也没任何问题。然后看看部署到iis上会怎么样。
将文件发布好了以后,部署到iis上,这个过程就不说了
一切弄好了以后,访问网站,出现:不能在此路径中使用此配置节 的错误。网上找的了解决方案:https://www.cnblogs.com/DHclly/p/6136349.html。为了怕这篇文档丢失,还是在这里记录一下
- HTTP 错误 500.19 - Internal Server Error
- 无法访问请求的页面,因为该页的相关配置数据无效。
- 详细错误信息:
- 模块 IIS Web Core
- 通知 BeginRequest
- 处理程序 尚未确定
- 错误代码 0x80070021
- 配置错误 不能在此路径中使用此配置节。如果在父级别上锁定了该节,便会出现 这种情况。锁定是默认设置的(overrideModeDefault="Deny"),或者是通过包含 overrideMode="Deny" 或旧有的 allowOverride="false" 的位置标记明确设置的。
- 配置文件 \xx\web.config
- 配置源:
- : <modules runAllManagedModulesForAllRequests="true" />
- : <handlers>
- : <remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" />
解决步骤如下:
控制面板—>程序—>启用或关闭windows功—>Internet Infomation Service—>万维网服务—>应用程序开发功能—>里面把Asp.Net .选上
到此,这个问题解决了。
继续访问,又遇到了问题:处理程序“ExtensionlessUrlHandler-Integrated-4.0”在其模块列表中有一个错误模块“ManagedPipelineHandler”
解决办法是将配置文件中下面的标出的两行去掉
再次访问网站http://localhost:8025/home/index.html。遇到错误:无法识别的属性“targetFramework”。请注意属性名称区分大小写。
- “/CRM”应用程序中的服务器错误。
- 配置错误
- 说明:
- 在处理向该请求提供服务所需的配置文件时出错。请检查下面的特定错误详细信息并适当地修改配置文件。 分析器错误消息: 无法识别的属性“targetFramework”。请注意属性名称区分大小写。源错误:
- 行 : 设置为 true。
- 行 : -->
- 行 : <compilation debug="true" targetFramework="4.0"/>
- 行 : <!--
- 行 : 通过 <authentication> 节可以配置 ASP.NET 使用的
- 源文件: E:\NET\CRM.Web\web.config 行:
网上的解决办法:https://blog.csdn.net/muchlin/article/details/6800863
解决方法:
修改.NET Framework 版本为相应版本即可,我以前用的是2.0换成4.0的时候出现这个错误。
我的win7系统,
1、打开IIs点击IIS根节点
2、看右边的“操作”-》点击“更改.NET Framework 版本”
3、选择相应的版本,我这里应该选择v4.0.30319,点击确定
4、点击IIS的应用程序池
5、在右边“操作”栏里选择“应用程序默认设置...”
6、把“.NET Framework 版本”设置为v4.0,点击“确定”即可。
到此这个问题解决了。
继续访问http://localhost:8025/home/index.html
出现404错误。解决方案:http://www.360doc.com/content/15/0103/20/5028907_437812977.shtml#!/xh
解决办法:
好了,现在可以正常访问:http://localhost:8025/home/index.html了
ASP.NET MVC 实现伪静态的更多相关文章
- ASP.NET MVC 5 伪静态之支持*.html路由
参考了例子 到自己实践还是有不少坑要踩,这种文章,你说它好还是不好呢 注意这里的版本是ASP.NET MVC 5 首页的URL为 http://localhost:58321/index.html ...
- [Asp.net MVC]页面伪静态实现
摘要 从页面Url及页面名称上看,你会发现静态页面和伪静态是一样的.伪静态的页面后缀可能是html,htm,cshtml等,只是改变了url的表现形式,实际上还是动态的页面.在SEO方面,伪静态和静态 ...
- asp.net mvc 伪静态路由配置
asp.net mvc实现伪静态路由必须按如下方式设置好,才能访问 .htm 或者.html页面 C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\aspne ...
- 【转载】ASP.NET MVC重写URL制作伪静态网页,URL地址以.html结尾
在搜索引擎优化领域,静态网页对于SEO的优化有着很大的好处,因此很多人就想把自己的网站的一些网页做成伪静态.我们现在在网络上发现很多博客网站.论坛网站.CMS内容管理系统等都有使用伪静态这一种情况,伪 ...
- ASP.NET MVC 解析模板生成静态页一(RazorEngine)
简述 Razor是ASP.NET MVC 3中新加入的技术,以作为ASPX引擎的一个新的替代项.在早期的MVC版本中默认使用的是ASPX模板引擎,Razor在语法上的确不错,用起来非常方便,简洁的语法 ...
- asp.net mvc 中 一种简单的 URL 重写
asp.net mvc 中 一种简单的 URL 重写 Intro 在项目中想增加一个公告的功能,但是又不想直接用默认带的那种路由,感觉好low逼,想弄成那种伪静态化的路由 (别问我为什么不直接静态化, ...
- asp.net MVC URL路由入门指南
asp.net MVC 的URL路由是一个非常强大的功能,而且有个优点:强大单不复杂.然而,目前我在网上看到的相关资料,却都仅仅提供一些示例,仅通过这些示例,初学者基本上不可能明白为什么要这么配置,更 ...
- ASP.NET MVC之PagedList使用
ASP.NET MVC之PagedList使用 ---由于最近项目中用到了分页这里也来记录一下,一方面给自己一个记录,另一方面给后来者一些帮助! 一.首先大家先来看一下效果
- ASP.NET MVC5实现伪静态
目录 1.什么是伪静态?为什么要实现伪静态? 2.实现APS.NET MVC伪静态的方式有哪些? 3.那么如何实现使用ASP.NET MVC5的伪静态呢? (1)在路由注册中启用特性路由 (2)为需要 ...
随机推荐
- mongo开启验证
mongodb刚安装完, 创建超级用户 $mongo #进入mongo控制台 MongoDB shell version v3.4.10 connecting to: mongodb://127.0. ...
- Python 之 读取txt文件
本文直接给出三种实现方法,代码例如以下. 方法一: f = open("Proc_Data.txt") # 返回一个文件对象 line = f.readline() # 调用文件的 ...
- JavaSE入门学习9:Java基础语法之数组
一数组的定义 数组能够理解为是一个巨大的"盒子",里面能够按顺序存放多个类型同样的数据.比方能够定义int型的数组 scores存储4名学生的成绩. watermark/2/tex ...
- router-link的a样式变成div样式元素属性
<router-link tag="div" :to="itemChild.path"><span>{{itemChild.name}} ...
- java的自动类型转换
package BaseType; /*java的自动类型提升和窄化转换 * * 1. 当一个char,short,byte类型的变量被赋值给一个超出他自身能表示的最大范围的数,java会自动将该数转 ...
- asp.net mvc 中使用单例
有这样一个service,需要运行的asp.net站点上,但要保证这个实例是唯一的.单例用来启用聊天机器人,保证唯一,以免启动多个,造成客户端发送消息的时候,会造成每个机器人都发送消息,app收到多条 ...
- 2016/05/06 Sublime Text 3 常用插件以及安装方法(转)
http://www.cnsecer.com/460.html 安装Sublime Text 3插件的方法: 朋友们,小站活着不容易,全靠广告费养着了,如果本文对你有帮助.麻烦动下手点下页面的广告吧, ...
- spring的PROPAGATION_REQUIRES_NEW事务,下列说法正确的是(D)
A:内部事务回滚会导致外部事务回滚 B:内部事务回滚了,外部事务仍可以提交 C:外部事务回滚了,内部事务也跟着回滚 D:外部事务回滚了,内部事务仍可以提交 PROPAGATION_REQUIRES_N ...
- usdt源码编译安装
1.依赖关系Boost >= 1.53 2.安装依赖包You will need appropriate libraries to run Omni Core on Unix, please s ...
- codeforces round 418 div2 补题 CF 814 A-E
A An abandoned sentiment from past 水题 #include<bits/stdc++.h> using namespace std; int a[300], ...