调试了两天遇到一个非常诡异的问题 一个系统稳定运行了很多年, 是用 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/zyczyc/p/12633997.html