iis右键页面不显示 iis无法显示htm页面问题 - IIS - 服务器之家

服务器之家

专注于服务器技术!
当前位置:首页 > Web服务器 > IIS

iis右键页面不显示 iis无法显示htm页面问题

发布时间:2017-04-02 来源:服务器之家

周5按照网上的文章使用IIS搭建了一个php网站,确实成功运行了。
我很确定站点IIS配置是没有问题的,各个选项都看了几遍,IIS日志也看了,没啥可疑的地方。
此时IIS上的其它ASP站点都是可以正常访问的。。。

然后使用必应搜索了一下,没发现类似的问题,最后下面这篇文章给了我灵感:

-----------------------------------------------------------------------------------------------------------------
IIS连最基本的htm都访问不了的原因及解决方法:

1、右键 IIS相应网站-->属性-->ISAPI筛选器,之前为了能够访问php我在这里添加了Php筛选器,

而php-cig.exe并不是真正的ISAPI筛选器(php5isapi.dll),将其删除后,一切正常了。

ISAPI即Internet Server Application Program Interface,是微软提供的一套面向Internet服务的API接口

--------------------------------------------------------------------------------------------------------------------
后记:
奇怪的是,为什么我周5搭建好后,一切是正常的,而周一访问时却访问不了呢?
我重新添加了一下ISAPI的PHP筛选器(即恢复成周5的配置),再次访问站点,是可以访问的,
说明配置没有生效,然后我回收了该站点的应用程序池,此时站点访问不了了,看了下应用程序池的
配置,在凌晨2点自动回收,KO,原来是这样子,终于找到了真正的原因,周5配置白天配置时,
应用程序池没有回收,ISAPI配置无效,一切正常,周一时,应用程序池被回收,ISAPI生效,
PHP筛选器导致任何页面无法访问。。。

 ------------------------------------------------------------------------------------------------------------------------------------------

最后,帖一下给我灵感的那篇文章,算是备份了:

问题描述:

这个问题困扰了半天,极度郁闷, 在网上找了好久,也没有个办法,有一个和我一样的问题,但上面说的解决方法却不好用,更是郁闷,后来经过n次的测试修改,才把这个问题解决了,解决方法:
2、在web.config文件中<compilation>节点下添加code:

<buildProviders>
        <add extension=".html" type="pilation.PageBuildProvider" />
< /buildProviders>

3、在web.config文件中<system.web>节点下添加code:
<httpHandlers>
      <add path="*.html" verb="*" type="System.Web.UI.PageHandlerFactory" validate="true"/>
    </httpHandlers>

注:这里值得注意的是add的先后顺序,很简单的原理,通过这个配置文件请求首先要到我们自定义的httpHandler块,如果不在我们指定的path里,则走系统的PageHandlerFactory; 还有一个要注意的地方就是,这里当

<add path="html/*.html" verb="*" type="AutoModuleService.AutoHandlerFactory,AutoModuleService" validate="true"/>

修改方法:

上面的1和2照做;

3、在web.config文件中<system.web>节点下添加code:

<httpHandlers>
      <add path="*.html" verb="*" type="System.Web.UI.PageHandlerFactory" validate="true"/>
    </httpHandlers>

4、在web.config文件中<configuration>节点下使用<location>节点,添加code:

<location path ="html">

    <system.web>
      <httpHandlers>
        <add path="*.html" verb="*" type="AutoModuleService.AutoHandlerFactory,AutoModuleService" validate="true"/>
      </httpHandlers>

    </system.web>

</location>

最后补充两点:
如果你用到的后缀类型是一种古怪的后缀。
比如:*.aaa *.csdn 等这样的后缀,
在IIS6 中,你需要额外再多做一步:
在IIS的站点属性->HTTP头->MIME类型中增加一个该后缀的MIME类型,不然遇到该后缀的请求时将首先被IIS给拦截掉,没办法显示的。