贝网博客

我的分类
流水记事
源码下载
Asp.net
其它
数据库
Javascript
.Net技术
我的相册
友情链接
博客园
CSDN博客
Start0
最新回复
嗷嗷的cCC
fasdfasdf
[:..
lz这个东西好厉害,我..
哈哈,好照片
不错,以前一直用黄色..
终于找到支持ff的修正..
终于找到支持ff的修正..
新鲜性
看看,试试,好不好使。
 日志列表    
本站一共有博客83条,当前显示81条
回复:3  发表于:2010-12-14 14:11:45
更新于:2011-11-18 10:34:06

 项目中测试出一个bug,就是在ie6下,下面的代码中的a标签,点击将没有任何反应:
<a href="b.htm" target="frm">xxx</a><script type="text/javascript">document.domain="beinet.cn";</script>
<iframe name="frm"></iframe>

而非常奇怪的是,在公司的电脑中,有的IE6能正常打开链接,有的IE6不能打开链接,使用IETester模拟的IE6也不能打开链接,在IE7,IE8或Firefox等均可以打开链接

经过反复的测试,发现是domain设置的问题,删除domain的设置就正常了,但是这个domain的设置是为了跨多个子域,不能删除,
经过测试,找到了另一个解决方案:创建一个html,里面就一句:<script type="text/javascript">document.domain="beinet.cn";</script>,然后上面的iframe的src指向这个html,也能正常,但是如果iframe所在的页面如果没设置domain,或设置的不一样,也会造成target无效

估计不能下载的ie6是有什么特殊设置吧,问题也一直没有搞清楚到底是什么特殊设置造成的,而IETester没有设置也不能下载。

 发表于:2011-06-09 21:07:11
更新于:2011-11-18 10:33:57

这2天做静态页,生成的html是utf8的格式,发现会被ie认成gb2312的,显示为乱码了,于是在aspx页面加了meta,格式如下:
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>首页</title>

结果用ie访问aspx页面时,出现.net的编译错误: CS1010:常量中有换行符
经过实验发现把title里的“首页”这2个汉字删除就不会出现编译错误了,nnd,这是啥问题?搜了一下,没找到答案

不管了,先完成工作,再刷新aspx页面,完了又出现别的问题了,aspx页面的有的汉字正常显示,有的汉字是乱码,我%&**$%*%&*&*(@#@
研究了半天,什么CodePage=936的都测试过了,就是不行,但是只要删除meta声明为utf8的那行html,肯定正常,我再次@$%@$%@!%#

最后灵机一动,检查一下aspx的保存编码格式,发现用的是:Unicode(UTF-8 无签名)-代码页65001
而aspx里用到的一些ascx控件,保存编码格式用的是:Unicode(UTF-8 带签名)-代码页65001

于是统一修改为Unicode(UTF-8 带签名)-代码页65001,问题解决了,这是啥问题,我!@#$$%^^&*

教训是以后保存文件统一使用:Unicode(UTF-8 带签名)-代码页65001

btw:
带签名即文件头含BOM信息,不带则没有。
带了的好处是,只要支持多编码的编辑器都能正确识别出文件编码,而不带,就很可能出现乱码。
总之呢,这个BOM信息也就那么三字节,没必要省这么一点点空间

回复:1  发表于:2010-09-13 19:58:06
更新于:2011-11-18 10:31:45
介绍如何在SqlServer里进行Sql的格式化,方便理解别人写的Sql
是图文并茂的哦
 发表于:2010-11-30 09:42:05
更新于:2011-11-18 10:31:34

由于公司网站使用了负载均衡,然后每天的错误日志都会有:System.Web.UI.ViewStateException: 无效的视图状态。

而由于公司原因,修改MachineKey比较麻烦,采用了修改Web.config的pages节配置来解决这个问题:
<pages validateRequest="false" enableEventValidation="false" viewStateEncryptionMode="Never" enableViewStateMac="false">

这里比较奇怪的是enableViewStateMac这个属性,按msdn说明,这个属性默认为false,但是我没加这个属性时,错误依旧,加入这个属性后才不会出错,而项目的其它地方都没有处理enableViewStateMac属性,奇怪啊奇怪

回复:1  发表于:2010-11-17 10:23:32
更新于:2011-11-18 10:31:26

今天遇到个问题,需求是这样的,要从用户表里取得注册时间为今天的记录,用于另外一个表的关联,用户表结构:
id             [bigint] IDENTITY(1,1),
regtime  [datetime] 
id为主键,并在regtime上建了索引名为:idx_regtime

下面是取得注册时间为今天的用户的sql:
DECLARE @Today FLOAT;
SET @Today = CAST(GETDATE() AS FLOAT);  -- 把今天转换为距1900年1月1日间隔的天数用于获取今天注册的用户
SELECT id FROM [user] WHERE regtime BETWEEN FLOOR(@Today) AND @Today

 在数据库里查看执行计划,上面的语句用到了idx_regtime这个索引
但是,在关联别的表的时候,很奇怪的是,昨天测试会用到索引,今天测试又是全表扫描了,关联的sql如下:
DECLARE @Today FLOAT;
SET @Today = CAST(GETDATE() AS FLOAT);  -- 把今天转换为距1900年1月1日间隔的天数用于获取今天注册的用户
SELECT TOP(11) a.* FROM tbFriend a,
 (SELECT id FROM [user] WHERE regtime BETWEEN FLOOR(@Today) AND @Today) b
where a.userid = b.id

上面的sql在查看执行计划时,里面的嵌套语句却没有使用idx_regtime这个索引,导致效率极低,暂时还不明白原因
于是给关联语句强制使用索引,添加WITH(INDEX(idx_regtime)),最后的sql就是:
DECLARE @Today FLOAT;
SET @Today = CAST(GETDATE() AS FLOAT);  -- 把今天转换为距1900年1月1日间隔的天数用于获取今天注册的用户
SELECT TOP(11) a.* FROM tbFriend a,
 (SELECT id FROM [user] WITH(INDEX(idx_regtime)) WHERE regtime BETWEEN FLOOR(@Today) AND @Today) b
where a.userid = b.id

 发表于:2010-09-01 11:27:58
更新于:2011-11-18 10:31:18
讲述了Javascript中的String.replace方法,replaceText使用函数里的参数说明
并有实例说明
 发表于:2010-08-25 09:59:12
更新于:2011-11-18 10:30:56

目前实现了一部分功能,因为工作原因,没法分太多时间来搞

下面是目前实现部分的代码部分:
SqlDeveloper.rar  已下载

目前已实现功能:
1、表结构读取(含注释和主键等信息),编辑功能尚未实现
2、视图结构读取和编辑
3、Sql运行(多个sql必须以分号分隔)

待实现功能:
1、sql格式化,这点还没有好的思路
2、在输入的sql中的表名按右键,显示“编辑”和“检索数据”菜单,目前难点在如何提取出表名(简单的from可以实现,复杂的sql就难一些)
3、表结构编辑后,存入数据库
4、存储过程和函数的结构

目前暂时想到这么多

 发表于:2010-11-05 10:04:24
更新于:2011-11-18 10:30:40

 接手了一个项目,一直存在一个历史遗留问题,就是在使用统一登录的过程中,不定期出现登录不成功,反复弹出登录窗口的问题,因为是用的公司自己开发的IE内核的浏览器,所以下载了一个Http抓包工具Fiddler2,经过一个下午的排查,终于发现了问题所在,记录下来留念

首先是在统一平台登录的时候,会设置一个Cookie:
HttpCookie cookie = new HttpCookie(iemi);
cookie.Values.Add("credential", credential);
cookie.Domain = "beinet.cn";
cookie.Expires = DateTime.Now.AddHours(6.0);
HttpContext.Current.Response.Cookies.Add(cookie);

然后在项目页面退出的代码如下:
HttpContext.Current.Response.Cookies[IMEI].Value = ""; // 这里没有设置Domain

这样就造成了客户端有2个同名不同域的Cookie,而IE提交时,又每次都会提交2个Cookie上去,
在再一次登录的时候,这2个Cookie,一个是登录成功的Cookie,一个是退出的Cookie,
偏偏非常奇怪的是,有时在服务器上用:Request.Cookies[IMEI]读取到的是登录成功的Cookie(此时程序工作正常),
有时读取到的是退出的那个Cookie,导致程序认为没有登录,又弹出登录窗口

解决方法,就是在退出的代码里,也设置这个域,即:
HttpContext.Current.Response.Cookies[IMEI].Value = ""; 
HttpContext.Current.Response.Cookies[IMEI].Domain = "beinet.cn"; 


©2008 Beinet.cn 版权所有