【我崩溃了】各种崩溃合集,郁闷时必看

前言

有一些问题现象会让人很崩溃,尤其是在脑筋转不动的时候,搞得不知所措,以下记录那曾经的崩溃。

 


页面加载很慢,将近4分钟才能加载完

  • 问题现象
    访问 login.aspx 以及其他所有页面,需要加载近4分钟,页面才能显示
  • 问题分析
    访问服务器的远程桌面,速度很快,所以排除服务器本身网速问题;
    通过远程桌面,在服务器本地查询数据库,速度很快,所以排除数据库问题;
    通过远程桌面,在服务器本地打开页面,加载还是很慢,所以问题定位在 asp.net 程序本身;
    通过 Chrome,查看加载页面时,各个组件的加载情况,发现有一个 css 文件加载了近4分钟。
  • 问题原因
    由于国内网络特色,造成以下的 css 文件加载无限超时:
    <link href="http://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700,800|Shadows+Into+Light" rel="stylesheet" type="text/css">
    


     

  • 解决方法
    删除或者注释上述 css。

 

 


页面一片空白,Validator 控件惹的祸

  • 问题现象
    页面一片空白,未出现任何错误信息。
  • 问题分析
    通过部分删除 aspx 标记,页面可显示内容,所以原因定位在 aspx 文件中。
  • 问题原因
    RequiredFieldValidator 属性 ControlToValidate 指向的控件 ID 不存在,并且 Display 属性被设为 none。

 


页面显示异常:不能把数据库 A 视图的 B 字段设为 Guid 类型,因为 B 是 int 类型

  • 问题现象
    见标题
  • 问题分析
    通过 Management Studio,A 视图能够正常查询,并且 B 字段是 int 类型,数据库结构是正确的;
    通过查看 Entity Framework 生成的 A 类,B 属性也是 int 类型,实体结构是正确的;
    郁闷之余,看了一下 A 视图查询出来的数据,发现 B 字段里面的数据居然都是 Guid,数据错了。
  • 问题原因
    之前在 A 视图引用的一张表中添加了一个字段,添加的位置是在第3列,而 B 字段是在第4列,
    添加之后造成 A 视图查询结果错位了,B 字段显示的数据变成了新增字段的数据;
    为什么会错位呢?因为视图里面脑残的写了 SELECT Table1.*,这种写法是相当危险的,
    变更字段后,视图必须重新生成。
  • 问题总结
    视图中尽量不要使用 SELECT Table1.* 这种写法。

 

 

 

posted on 2013-10-13 17:37  CsharpStyle  阅读(167)  评论(0编辑  收藏  举报