非常诡异的IIS下由配置文件加上svg的mime头导致整个网站的静态文件访问报错误

调试了两天遇到一个非常诡异的问题 一个系统稳定运行了很多年,是用mvc5+WIN2008R2  + .NET 4.5 +IIS环境下运行,非常稳定,最近想迁移到一台新的服务器,为了少麻烦在阿里云上买了一台同样环境的WINDOWS 2008 R2 ,把程序部署上去后报了十分诡异的错误。

1.部署新服务器后,全部动态程序运行正常,但是所有静态文件无法加载(图片,css,js,html)纯静态访问全部报500错误(无法显示页面,因为发生内部服务器错误)

最后定位到了问题原因,原来在web.config里关键的一句去掉svg的mine配置就正常了。去掉配置节点system.webServer/modules/staticContent/

<mimeMap fileExtension=".svg" mimeType="image/svg+xml" />

去掉就正常加上就报错(仅限访问静态文件报错,动态文件正常)这让人十分诡异 ,最后只有把这一句去掉,去掉也影响不大,因为svg只是一个介面模板要使用的美化图标之类的,不影响不大,但始终像吃了苍蝇一样。有遇到同样问题的欢迎共勉。

这个莫名奇妙错误描述直接显示文本,没有详细错误代码 ,导致排查过程中被严重误导,以为是环境安装权限之类的问题

最后搜索到一个解决办法  繁体文章有点类似症状

https://hant-kb.kutu66.com/mip/12245572

前面加上一句

<remove fileExtension=".svg"/>

以下是尝试使用的各办法走了不少弯路

1.尝试把网站目录权限设置在EveryOne完全控制 ,虽然很危险也没有解决.
2.尝试把runAllManagedModulesForAllRequests改成=false 或删除
3.建立独立的应用程序池来运行
4.应用程序池 高级设置->启用32位应用程序 设置true
5.尝试各种重启 重装环境。
6.以为带宽 内存不够,加大带宽内存配置
7.开始网站目录建立在C盘,然后搬到其他硬盘。

这个问题报错太诡异走了太多弯路记录以下给其他遇到的人共勉

原文地址:https://www.cnblogs.com/lihaijia/p/12636162.html

时间: 2024-11-09 00:50:45

非常诡异的IIS下由配置文件加上svg的mime头导致整个网站的静态文件访问报错误的相关文章

Windows 2003 IIS下配置MySQL+PHP+ISAPI_Rewrite+Zend+Xcache

Windows 2003 IIS下配置MySQL+PHP+ISAPI_Rewrite+Zend+Xcache zend  mysql  php  iis  windows  extension 一.准备工作 windows 2003,自己买吧... 安装IIS 6.0:安装系统后在"控制面板"->"添加或删除程序"->"添加/删除Windows组件"->双击"应用程序服务器"->然后选中"In

linux下的php网站放到Windows服务器IIS下导入 .htaccess文件伪静态规则转换 (wordpress)

需要特别注意的是: 1. .htacdess文件在 wordpress中 是可以生成的 安装 WP Super Cache后,开启该插件>>设置>>高级>>找到并点击"更新Mod_Rewrite 规则"按钮,这是会在网站根目录生成 .htaccess文件 将该文件导入到iis中的 url重写模块即可 2. 针对图片脚本样式文件报404的错误,可以通过以下规则 直接过忽略掉 <rule name="jpgtest" stopP

跟我一起,利用bitcms内容管理系统从0到1学习小程序开发:一、IIS下SSL环境搭建

缘起 1.从事互联网十来年了,一直想把自己的从事开发过程遇到的问题给写出来,分享给大家.可是可是这只是个种想法,想想之后就放下了,写出来的类文章是少之又少.古人说无志之人常立志,有志之人立长志.今天,就从学习小程序开始,记录在学习过程中的遇到点点滴滴,先做“无志之人常立志”吧. 强调的是,微信小程序开发,我也是从0到1的过程,肯定会有错误或遗漏,还望给指导指导,让我的学习知识更完善,再此先谢过了. 2.bitcms开源内容管理系统也发布了,运营对一个程序老猿来说,确实是个艰巨的任务.自己的想法很

[转]解决IIS下UTF-8文件报错乱码的问题

找了两天才找到解决办法…….晕晕晕...用第二种方法解决了. 网上找到的方法都没有写这一条 If objASPError.ASPDescription > "" Then 后面的回车去掉(这个地方微软写错了) 将这一句后面的<br>注释掉即可! Response.Write Server.HTMLEncode(objASPError.ASPDescription)' & "<br>" 转自:http://blog.csdn.ne

IIS下安装php5.3

前面装过一次PHP5.2,但PHP5.3与PHP5.2相比,变化很多. 由于PHP5.3的全新特效及改进,原有的isapi方式解析PHP脚本已经不被支持,PHP从5.3.0以后的版本开始使用微软的FastCGI模式,这是一个更先进的方式,运行速度更快,更稳定! 新版本的PHP5.3通过以往老方法已经不能在IIS上安装了,现在给出在IIS上安装PHP5.3以后版本的教程. 1,下载并安装 FastCGI Extension for IIS 6.0 and 5.1,下载地址:http://www.i

IIS下不能下载文件的docx文档,XLSX文档的设置方法(转)

IIS下不能下载文件的docx文档,XLSX文档的设置方法 Office 2007的的界面风格默认格式中都是.DOCX,XLSX,PPTX等等后缀,连结中包含此类文件时,界面风格默认什么打不开的其实只要在IIS中的MIME的类型中添加对此格式的支持就可以了下面提供两种方法扩展功能,推荐使用第二种. 方法一:打开网站属性,的HTTP头选项对话牌,添加的MIME类型 新建一种类型,填入需要的 .docx ,类型为 application/vnd.openxmlformats-officedocume

IIS下发布关于Excel导入导出时遇到的问题集锦(转)

问题描述 1.Excel每个工作薄(sheet)生成记录行数 2.asp.net关于导出Excel的一些问题的集锦 3.下载失败,临时文件或其所在磁盘不可写 4.未能加载文件或程序集"Microsoft.Office.Interop.Excel, Version=14.0.0.0,** 5.IIS下发布操作Excel程序时遇到{00024500-00***即80070005错误 6.System.ComponentModel.Win32Exception: 拒绝访问 有关这这几个问题详解. 问题

在IIS下部署Thinkphp项目,验证码不能显示的解决办法

由于公司租用的是虚拟空间,而且用的是IIS服务器,所以部署PHP的时候就出现很多问题:比如昨天就碰到这个问题:在IIS下部署Thinkphp项目,验证码不能显示 这是生成验证码的方法: // 制作专门方法实现验证码生成 function verifyImg() { // 以下类Verify在之前并没有include引入 // 走自动加载Think.class.php autoload() $config = array ( 'useNoise' => false, 'imageH' => 35

IIS下自定义错误页面配置的两种方式(亲测可行)--IIS服务器

网站自定义错误页面的设置,大家应该都知道它的重要性……不多说,下面带大家一步步在IIS下设置网站自定义错误页面…… 1.首先进入你的网站主页,找到[错误页](注意是IIS下的错误页不是.NET错误页),双击[错误页] 2.这样就进入了错误页面,点击[编辑]或者双击状态代码行,打开“编辑自定义错误页面” 3.填写状态码,响应操作处选择第二项[在此网站上执行],输入URL 4.查看错误页面相对根目录的位置,按照示例填写就可以的.然后依次设置其它页面 5.当然还可以通过修改配置文件(web.confi