IsapiModule或CgiModule必须在模块列表中
来源:互联网 发布:java 根据域名获取ip 编辑:程序博客网 时间:2024/06/04 19:26
IIS7中默认是已经加载了脚本映射处理。但今天装了个WIN7,装好IIS后却发现没有。于是手动去这安装,在添加html映射时提示:模块列表中必须要有IsapiModule或cgiModule
Google了半天找不到原因。后来在找到了答案。方法很简单,在 控制面板 -> 程序和功能 -> 打开或关闭Windows功能(这几步可以简化为Win+R运行OptionalFeatures) -> Internet信息服务 -> 万维网服务 -> 应用程序开发功能,把下面的全部勾上!重启,成功!
问题二:由于 Web 服务器上的“ISAPI 和 CGI 限制”列表设置,无法提供您请求的页面。
IIS的根节点(第一节点 )->右侧“ISAPI和CGI限制”->把禁止的DotNet版本项设置为允许,即可.
Web.Config 在iis7下必须加以下一段:
==========================================
<system.webServer>
<modules>
<add name="all" type="URLRewriter.ModuleRewriter" preCondition="managedHandler" />
</modules>
<handlers>
<add name="all" path="*" verb="*" modules="IsapiModule" scriptProcessor="C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" resourceType="Unspecified" requireAccess="None" preCondition="classicMode,runtimeVersionv4.0,bitness32" />
<add name="html" path=".html" verb="*" modules="IsapiModule" scriptProcessor="C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" resourceType="Unspecified" preCondition="classicMode,runtimeVersionv4.0,bitness32" />
</handlers>
</system.webServer>
</configuration>
HTTP 错误 404.0 - Not Found
您要找的资源已被删除、已更名或暂时不可用。
Asp.net配置伪静态规则
第一步: 从如下任一地址中下载URLRewriter组件:
下载地址1:http://download.csdn.net/source/524514
同一个项目, 又建另一站点(相同的物理路径,) ,结果出下上图404.0错误, 原来是vista下应用程序池默认的32应用程序属性影响,参考下图,设置为True
下载地址2:http://www.nmju.net/UserFiles/URLRewriter.rar
下载地址3:http://download.microsoft.com/download/0/4/6/0463611e-a3f9-490d-a08c-877a83b797cf/MSDNURLRewriting.msi
第二步:在网站项目中添加URLRewriter程序集的引用。
第三步:配置webconfig文件:
1、在<configSections>与</configSections>节点首部加入如下:
<section name="RewriterConfig" requirePermission="false" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter"/>
2、在<httpHandlers>与</httpHandlers>之间加入:
<add verb="*" path="*.aspx" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
<add verb="*" path="*.html" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
3、在<httpModules>与</httpModules>之间加入
<add type="URLRewriter.ModuleRewriter, URLRewriter" name="ModuleRewriter"/>
4、配置伪静态的语法:在<configuration>与</configuration>之间加入<RewriterConfig></RewriterConfig>节点。在<RewriterConfig>与</RewriterConfig>之间加入伪静态规则:
<Rules>
<!--定义伪静态第一条规则开始-->
<RewriterRule>
<LookFor>~/xxxx/view(.[/d]*)/.html</LookFor>
<SendTo>~/xxxx/view.aspx?id=$1</SendTo>
</RewriterRule>
<!--定义伪静态第一条规则结束-->
<!--定义伪静态第二条规则开始-->
<RewriterRule>
<LookFor>~/yyyy/(.[/d]*)/view.html</LookFor>
<SendTo>~/yyyy/view.aspx?id=$1</SendTo>
</RewriterRule>
<!--定义伪静态第三条规则结束 以此类推-->
</Rules>
第四部:配置IIS7.5 或IIS7.0
1、新建一个应用程序池:名称:任意如:webapp;选择net FrameWork版本(如果你的网站时候2.0的话就选择2.0,我的是4.0)在此我选择Net FramWork v 4.030319. 托管管道模式先暂时设置为集成模式。等下面的设置完成之后再将托管管道模式设置为经典模式。如果下面的设置完成之后不把应用程序设置为经典模式的话,伪静态的功能可以实现,但是页面的样式图片不能正常显示这是设置的关键。
2、新建一个网站 website ,将此站点的应用程序程序池设置为webapp。
3、选中你的站点比如website ,并且切换到功能视图。双击【处理程序映射】在打开窗口右侧的操作栏目下做如下操作。
3.1、【添加脚本映射】-路径为:*.html.可执行文件为:C:/Windows/Microsoft.NET/Framework/v4.0.30319/aspnet_isapi.dll 注意:如果你的网站是2.0。可执行文件为:C:/Windows/Microsoft.NET/Framework/v2.0.50727/aspnet_isapi.dll 。名称:任意,比如:html.
3.2、【添加通配符脚本映射】 请求路径为*。可执行文件和3.1的一模一样,名称任意,比如:All.
3.3、【托管处理程序映射】(路径:* 可执行文件:System.Web.UI.PageHandlerFactory 名称 任意 比如Html-Integrate)
3.4、双击website站点切换到站点功能视图。然后双击模块,打开窗口之后在右侧的操作栏目下面,单击【添加托管模块】-》名称:任意 如All 类型:URLRewriter.ModuleRewriter 并且 把【仅针对向asp.net 应用程序或托管处理程序发出请求调用】前面的选项勾上。(记住一定要勾上)。
3.5、最后一步:双击iis7.0或7.5的应用程序池。在应用程序池列表中找到【webapp】应用程序池。双击打开之后。将webapp应用程序池的【托管管道模式】设置为经典模式。
值得注意的是第三部中的2,3点可以根据程序设计的需要选其一,在某些不确定的情况下,可能使程序出现异常。
当然在配置iis7.0和iis7.5时还有更简单的方法。将微软官方的url包安装到服务器上,在服务器上导入配置规则文件,
MaxMatchCount 10
RewriteRule ^news/([0-9]+)/.html$ news/xx.aspx?id=$1 #注释
。。。。。
。。。。
NotParsed foo bar
文件名后缀为.htaccess,将网站暂停,点击UrlWriter,导入规则应用即可,当然在开发过程当中,为了便于测试,最好是将两种方法结合使用,再在web.config中将相关的urlwriter重写配置项注释或删除即可!
- IsapiModule或CgiModule必须在模块列表中
- 模块列表中不存在此处理程序所需的指定模块,如果你添加脚本映射处理程序映射,则IsapiModule或CgiModule必须在模块列表中
- 在部署一个IIS7程序时的问题 模块列表中不存在为此处理程序指定的一个或多个模块。如果您尝试添加脚本 映射,则 IsapiModule 或 CgiModule 不会显示在模块列表中
- 在构造函数中必须用初始化列表的情况
- C++中必须在初始化列表初始化的类型
- 关于出现“使用 UNION、INTERSECT 或 EXCEPT 运算符合并的所有查询必须在其目标列表中有相同数目的表达式”错误的可能原因
- 关于出现“使用 UNION、INTERSECT 或 EXCEPT 运算符合并的所有查询必须在其目标列表中有相同数目的表达式”错误的可能原因
- 应该是一个控制器必须定义在一个模块中,并且模块的名字不得为空。
- 在Python中运行自定义包或模块
- linq中union错误:必须在其目标列表中有相同数目表达式(转)
- c++中必须在类初始化列表中初始化的几种情况
- c++中必须在类初始化列表中初始化的几种情况摘要
- 在构造器中为什么this或super必须放在第一行?
- 在构造器中为什么this或super必须放在第一行?
- 在构造器中为什么this或super必须放在第一行?
- 在构造器中为什么this或super必须放在第一行?
- 处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误模块“ManagedPipelineHandler”<转>
- 处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误模块“ManagedPipelineHandler”
- Oracle 11g linux 安装【oc4j_applications/applications/WFMLRSVCApp.ear File not found】
- Python 中 异常UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-3:处理
- IBUS Install
- linux-2.6.32在mini2440开发板上移植(19)之yaffs2文件系统移植
- 设计模式之行为型模式
- IsapiModule或CgiModule必须在模块列表中
- Oracle database 14章 使用数据泵导出和导入 导出 理论试验
- iis上配置运行python(win7-iis7.5)
- VC6.0编写的MFC项目移植到VS2010中编译遇到的几个问题
- XNA4.0学习笔记2:控制精灵和碰撞检测
- PHP:PHPUnit安装
- jUnit 单元测试
- 检测毒药
- 类似约瑟夫环