• IIS文件存在但报404问题解决


    遇到一个奇怪的问题,在IIS7.5中,一些样式和JS文件存在,但访问就是报404.

    根据网上搜索到的解决方法,发现解决不了,不同同样的问题引起的。

    网上解决:

    1、没有配置合适的MIME信息,通过添加合适的MIME信息来解决。

    打开IIS配置,看了下,已经添加了样式文件的了,所以不是这个问题。

    2、重新注册.net framework,原因是先安装的.net后安装IIS,没启用.aspx页面访问

    HTTP 错误 404.2 - Not Found  由于 Web 服务器上的“ISAPI 和 CGI 限制”列表设置,无法提供您请求的页面。

    打开IIS,右边操作里选基本设置,应用程序池旁边点选择,模式改成Classic ,

    就是将管理模式切换为了经典模式。

    出现环境:win7 + IIS7.0

    解决办法:IIS的根节点->右侧“ISAPI和CGI限制”->把禁止的DotNet版本项设置为允许,即可~ 如果没有的可以自行添加,路径如下图示:

    这个也不对,因为不是刚刚安装的,已经运行了很久的了,而且其它站点也正常。

    后来又在网了搜索了很久,没找到思路。

    怀疑是路径跳转不正确,所以配置webconfig列出了文件列表,想确认文件存在。

    遂层点击查询,发现是文件名带有“.”的目录访问不正常,报4040.

    转到服务器本地访问,查看原因(因为在外面访问是不呈现详细错误信息的)。

    看到,样式文件和JS文件所有的目录访问是被UrlScan拒绝了。

    查看UrlScan日志

    应该上是这个UrlScan配置有问题了,于上找一下配置的文章,修改配置,解决了。

    参考:http://www.cnblogs.com/ttzhang/archive/2010/04/27/RunPhpOnIIS7viaFastCGI.html

    解决方案:

    是UrlScan拒绝了该请求,在UrlScan的日志目录C:WindowsSystem32inetsrvurlscanlogs中打开一个日志文件,发现很多类似 "Rejected URL+contains+high+bit+character URL"的记录,这又是为什么呢???原来IIS7.0上安装UrlScan后,所有的请求都会经过aspnet_filter和Request Filtering的过滤,Request Filtering的过滤规则就在UrlScan的安装目录C:WindowsSystem32inetsrvurlscanUrlScan.ini文件中,其中有这样一个规则AllowHighBitCharacters=0,IIS官网的解释是: This feature either allows or rejects all requests to IIS 7 that contain non-ASCII characters and logs the error code 404.12,允许或拒绝所有包含非ASCII字符的请求并在日志中记录404.12错误,该规则默认为0,也就拒绝包含高位字符的请求 URL。我们将AllowHighBitCharacters的值改为1,图片终于可以正常显示了。

  • 相关阅读:
    mybatis 绑定 statement 失败
    JDBC链接Mysql失败
    Mysql 链接数据库时区错误
    mybatis 延迟加载
    C++ 虚函数表解析
    运行错误:error while loading shared libraries: xxx.so.0:cannot open shared object file: No such file or
    QComboBox的activated与currentIndexChanged的区别
    QT 文件对话框(QFileDialog)
    VS2010 ERROR:c1xx fatal error c1083
    django 在字符串[str(list)]中精确查找
  • 原文地址:https://www.cnblogs.com/mxm2005/p/4718712.html
Copyright © 2020-2023  润新知