2010网站可以建子网站但在子网站点击网站设置就报错我看日志也

  1. AutoCMS
  2. /
  3. 建站资讯
  4. /
  5. 网站
logo
陶可黛

网站  2026-09-03 11:00:01   493

2010网站可以建子网站但在子网站点击网站设置就报错我看日志也

说出来你们可能不信,我这破网站是2010年搭的,至今还在跑。老归老,平时也算踏实,结果今天在后台建了个子网站,点击子站里的“网站设置”,啪一下直接报错给我看。页面白茫茫一片,只留下一行死不瞑目的英文错误提示,日志里翻来翻去也就那几行字,看得我头大。

要说这毛病也怪,主站一切正常,功能好得跟二十岁小伙子似的,偏偏子站一碰设置就翻车。我起初以为是权限问题,毕竟子站继承了主站目录权限有时候会出幺蛾子。于是跑到服务器上,对着IIS管理器把子站应用程序池的标识从ApplicationPoolIdentity改成LocalSystem,结果呢,死得更惨,直接连页面都进不去,害得我赶紧改回来。

日志这东西,说实话有时候真的气人。错误写得模棱两可,像是那种“服务器资源不可用”或者“不能在此路径上使用此配置节”之类的套话,看完等于没看。后来我发现,如果直接访问子站的其他功能页面,比如内容编辑、模板管理这些,都不会报错,唯独“网站设置”这个入口点必炸。

这就很有意思了,说明问题不是出在子站的权限上,而是出在这个设置页面本身加载的东西上面。2008年后的那个老版本系统,设置页面喜欢动态读取配置文件,还带读取当前请求的站点路径。子站一多,这个路径解析就经常搞错,导致后面一连串逻辑全崩。

我试着把子站绑定的域名换成localhost直接访问,还真让我进去了设置页面。原来问题就出在域名绑定上,子站用我在备案的那个正式域名访问时,系统去解析站点对应的物理路径,结果读出来一个空值,后面再调用任何依赖这个路径的函数统统爆炸。

解决办法也简单,跑到数据库里找到站点配置表,把那条子站记录的物理路径字段手动改成服务器上实际的绝对路径。我这边用的是D:\WebSites\子站目录\这种格式,改完之后刷新了一下网站设置,妥妥的能打开了。

后来我总结了下,2010那时候的建站程序,很多在处理子站路径时用的是相对路径或者动态拼接的方式,当时没觉得有什么问题,现在换了服务器环境、改了IIS版本,就对路径的写法敏感了。日志里看不到真实错误原因,说白了就是程序里压根没把这个异常当回事,直接抛了个泛化错误出来。

顺便说一句,这个bug让我把服务器翻了个底朝天,最后居然是在数据库里解决的,想想也是挺讽刺的。老网站就像老车,平时能开,一上高速就给你脸色看。你要是也碰到类似情况,别光盯着日志看,先去查一下子站的物理路径配置,八成就是那边出岔子了。