让人崩溃的一上午
今天在安装网站的时候遇到了一个 BUG,足足折腾了我三个小时。其现象是网站通过安装程序部署后,所有的 aspx 页面均为 404。
(1)由于部署环境是 IIS 6.0,因此第一感觉就像到了是否是禁用了 ASP.NET v2.0 扩展(这也是网上人们对于这个问题的一般回答),但发现该扩展确实是启用的;
(2)出于狐疑,还是使用 aspnet_regiis –i –enable 重新进行了注册,但是问题依旧;
(3)查看 IIS 日志,发现 404 是 404.0.0 认定这绝对是路径的问题而不是 ASP.NET v2.0 扩展或者 Http Handler 映射的问题;
(4)经过了大眼瞪小眼的查找之后,发现:Web Application 的路径赫然写着:E:\\WebRoot\WebApp,原来E:后面竟然跟了两个斜线。
原来,安装程序在脚本生成的时候使用了变量替换,例如安装的目标路径是 $InstallPath$\WebApp,但是用户选择路径的时候恰恰选择了盘符,这样安装路径就成了 E:\ 于是就有了 E:\\ 的出现。更改安装程序,将用户选择路径的多余的“\”消除之后,解决。
往往最花时间的 BUG,其起因是很“白痴”的。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构