RSS 2.0 Feed
2007-09 Entries
摘要:SQL2005 中,我们使用 SQL Server Management Studio对大数据库操作,不象 SQL2000 的企业管理器那样,作一些大数据库的修改操作时候,不会超时。 如何解决呢? 很简单,在SQL Server Management Studio的 Tool --〉 Options 菜单设置即可。 需要设置的项如下: “为表设计器更新重写连接字符串的超时值”这个选项必须选中。 同时设置事务超时时间为最大值 即 65535 秒 这个事务设置的范围只能是1到65535 ,不能是0,也不能更大。...[阅读全文]

posted @ | Feedback (5) | Filed Under [ 数据库开发管理心得 ]

摘要:301和302 Http状态有啥区别? 301,302 都是HTTP状态的编码,都代表着某个URL发生了转移,不同之处在于: 301 redirect: 301 代表永久性转移(Permanently Moved), 302 redirect: 302 代表暂时性转移(Temporarily Moved ), 当然 Http 状态 200 标示没有任何问题发生。   这两种转移在使用的时候有啥好处或者问题? 301 重定向是网页更改地址后对搜索引擎友好的最好方法,只要不是暂时搬移的情况,都建议使用301来做转址。 302 重定向是临时性转移。 在前些年,不少Black Hat SEO曾广泛应用这项技术作弊,目前,各大主要搜索引擎均加强了打击力度,象Google前些年对Business.com以及近来对BMW德国网站的惩罚。即使网站客观上不是spam,也很容易被搜寻引擎容易误判为spam而遭到惩罚。 研究搜索引擎优化(SEO)的人,应该都知道,301,302 使用不当,或者灵活使用会有不错的效果的,比如参看下面文章: 302转向与网址劫持 301转向和网址规范化 301重定向的实现方法51window提供的301转向的代码一个网站十几个域名的重定向经验谈几个常用的301重定向     如果是运维人员,配置WEB服务器的一些设置就可以实现跳转,比如下面一些关于IIS实现重定向的文章 将请求重定向到文件、目录或程序 (IIS 6.0) http://www.microsoft.com/technet/prodtechnol/windowsserver2003/zh-chs/library/iis/fbcccfce-6695-4f92-bd55-869d85ff49fb.mspx?mfr=true 重定向参考 (IIS 6.0) http://www.microsoft.com/technet/prodtechnol/windowsserver2003/zh-chs/library/iis/41c238b2-1188-488f-bf2d-464383b1bb08.mspx?mfr=true 其他WEB服务器也可以通过设置实现跳转,我就不罗列了。     从技术人员来说我们比较常用的跳转方法有以下几种: 我们使用 Fiddler 工具来监控的下面提到的几种方法,看跳转过程中HTTP状态码是301?302?200?:   方法1:Response.Redirect("Test.aspx"); 状态码 301  临时性跳转   方法2:<meta http-equiv="refresh" content="5; URL=Test.aspx" /> meta fresh: 这在2000年前比较流行,不过现在已很少见。其具体是通过网页中的meta指令,在特定时间后重定向到新的网页,如果延迟的时间太短(约5秒之內),会被判断为spam。这种跳转方式,整个跳转过程中,页面Http状态都是200,即,页面没有任何错误发生。   方法3:Server.Transfer("Test.aspx"); 这种跳转方式,整个跳转过程中,页面Http状态都是200,即,页面没有任何错误发生。   方法4:URLRewrite 这种跳转方式,整个跳转过程中,页面Http状态都是200,即,页面没有任何错误发生。   没有一种是301跳转。也就是上面几种跳转方式都用不到301跳转的好处。   使用301跳转有啥好处呢? SEO(搜索引擎优化)中提到一点:如果我们把一个地址采用301跳转方式跳转的话,搜索引擎会把老地址的PageRank等信息带到新地址,同时在搜索引擎索引库中彻底废弃掉原先的老地址。   如何编码实现301跳转呢? Response.Status = "301 Moved Permanently";Response.AddHeader("Location","..."); 这里的 ... 表示你要跳转去的页面。     参考资料: 301永久重定向实现方式及302重定向...[阅读全文]

posted @ | Feedback (8) | Filed Under [ .net 编程心得 技术随笔 ]

摘要:手下有个人在创建一个RSS2.0文档时,对RSS2.0的一些项的规范不是很了解,把数据放错了地方,我下面就整理一些他犯错误的地方。避免其他人也犯这个错误。 完整的RSS2.0规范可以看以下链接地址: http://tonyqus.cnblogs.com/archive/2005/01/30/93684.aspx   <item>的节点下的guid节点 item节点下的guid节点的作用在于:可以唯一确定item的字符串。我们经常把这一项设置成URL,跟 link 节点是一样的。但是也是可以设置成不一样的。而且guid 节点可以设置任意格式的字符串。只要保证这个字符串是不重复的。 当设置的guid节点不是一个URL时,需要isPermaLink标志。isPermaLink标志就是标志是否guid节点是一个URL。示例如下: <guid isPermaLink="true">http://inessential.com/2002/09/01.php#a2</guid>isPermaLink是可选属性,默认值为真。如果值为假,guid将不会被认为是一个url或指向任何对象的url。 我的手下就是一直误以为这一项只能设置成一个URL,结果在需要在RSS中显示一个Guid类型的成员时,找不到地方放,随便放到了comments 中了。 用RSS.net 来实现这个定义,就可以简单的写成下面的代码: RssGuid rg = new RssGuid();rg.PermaLink = DBBool.False;rg.Name = Guid.NewGuid().ToString();item.Guid = rg;   <item>节点下<comments> 节点 comments 节点不是注释文本节点,而是 与item相关的评论的地址。这是一个URL。 <comment>是<item>的可选节点。 如果出现,它指向该item评论的url   <item>节点下分类节点<category>节点 这是表示分类的节点。 如果我们有多种分类,可以使用这个节点的 Domain  属性。 生成的节点如下: <category domain="ParentRoomID">分类名字1</category> 用 RSS.net 的代码就是: RssCategory c2 = new RssCategory();c2.Domain = "ParentRoomID";c2.Name = "分类名字1";item.Categories.Add(c2);   参考资料: 中文的RSS2.0 规范...[阅读全文]

posted @ | Feedback (4) | Filed Under [ .net 编程心得 技术随笔 ]

摘要:继续说女足世界杯的中国姑娘们,昨晚的比赛0:4输了。 由于上半场最后时刻被巴西队进了一个球,从下半场刚开始时,中国队的心态就是准备加强攻势,但是一减轻防守,就被巴西的足球小姐抓住机会,两个助攻得分。从此中国队就难以组织起象样的进攻。 为何比分变成0:3后,中国队为何难以再组织起象上半场那样的进攻势头? 我觉得是象足球这种比赛,它需要的是场上11个人统一目标,而且心态一致的落实某个具体的进攻方案。在0:3后,队员们很难全部都统一心态。有人想防守,有人想进攻,有的人时不时有点犯晕。更多的人脑子一热,不考虑战术了,只想着进球。这种情况下,很难组织一个团队进行有效的战术配合。从而下半场组织不起上半场的攻势。 一个团队的工作结果是依靠整个团队的所有成员目标一致的努力结果。中间只要有一个人走神,或者犯晕,或者不遵循团队制定的战术原则。会影响整个团队的结果的。这点足球比赛的团队表现的比其他团队更明显。足球比赛的结果能数倍的放大这种问题。...[阅读全文]

posted @ | Feedback (10) | Filed Under [ 非技术随笔 ]

摘要:昨天晚上看了女足世界杯中国对丹麦。结果是3:2中国赢了。给我感觉最深的是下半场的4个进球的过程。 第50分钟的时候,中国队一个世界波,2:0领先。 当时明显就能看到中国队的姑娘们满脸幸福,有点分心,结果不到1分钟,丹麦队扳回一球,2:1 。这个失球典型是还没有从哪个世界波进球中兴奋过来,就被泼了一盆冷水。 87分钟的时候,中国的一次进攻未果,给丹麦队获得一个后场任意球,中国队的姑娘们都还在丹麦队的后场。丹麦队非常快的发出任意球,造成中国队的后场竟然丹麦队的人比中国队的人还多。结果丹麦队2:2扳平比分。很显然这个失球是脑子还没转过弯,还在想自己进攻中,结果被对方扳平。 扳平后,丹麦队异常兴奋,从教练到队员有点兴奋过度,犯了跟中国队第二个进球一样的问题,结果不到一分钟,被中国队又一个世界波3:2拿下。给了丹麦队闷头一棍。   这几个进球有个共同特点,都是对手由于各种原因走神的时候进的。 足球场上走神一下,一失足成千古恨。其他场景也是类似的。 比如我所参与的项目中,经常会出问题的项目一般都不是难的项目,而是非常容易,没有任何技术含量的项目。轻敌,走神就是造成的根源。而难的项目,复杂的项目由于重视,反而很少出问题。 看完昨天的足球,对此感觉颇深,特写此篇博客发表自己的感触。...[阅读全文]

posted @ | Feedback (6) | Filed Under [ 非技术随笔 ]

摘要:今天早上微软发布了一个补丁,修复了Visual Studio 的一个安全漏洞。 这个漏洞是Crystal Reports for Visual Studio 导致的。 Crystal Reports for Visual Studio 中的漏洞可能允许远程执行代码 (941522) http://www.microsoft.com/china/technet/security/bulletin/MS07-052.mspx 几乎所有的VS都受影响,下面是受影响的VS版本 受影响的软件Crystal Reports RPT 处理漏洞 - CVE-2006-6133综合严重程度等级 Visual Studio .NET 2002 Service Pack 1 重要远程执行代码 重要 Visual Studio .NET 2003 重要远程执行代码 重要 Visual Studio .NET 2003 Service Pack 1 重要远程执行代码 重要 Visual Studio 2005 重要远程执行代码 重要 Visual Studio 2005 Service Pack 1 重要远程执行代码 重要 更多详细信息,请看上面的地址 http://www.microsoft.com/china/technet/security/bulletin/MS07-052.mspx  中文版 http://www.microsoft.com/technet/security/Bulletin/MS07-054.mspx  英文版 下面是我的安装信息 Microsoft Visual Studio 2005 Service Pack 1 安全更新 (KB937061) 安装日期: ?2007/?9/?12 8:40 安装状态: 成功 更新类型: 重要 最近发现了一个安全问题,攻击者可能会利用该问题来破坏您运行 Microsoft Visual Studio 2005 Service Pack 1 的 Windows 系统,进而对其进行完全控制。您可以通过安装此 Microsoft 更新来保护您的计算机。安装完此产品后,您可能必须重启动计算机。 详细信息: http://go.microsoft.com/fwlink/?LinkId=91233 帮助和支持: http://support.microsoft.com 这是因为我的VS2005是SP1版本,你可以在下面地址看到更多信息......[阅读全文]

posted @ | Feedback (17) | Filed Under [ .net 编程心得 ]

摘要:       在 Windows Form 应用中,我们碰到需要展开一个TreeView 控件的所有树节点的时候很简单,微软已经替我们提供了ExpandAll 方法,我们只要简单的一行代码tv_QTree.ExpandAll();就可以了。即 System.Windows.Forms 命名空间的 TreeView.ExpandAll 方法 。        在WPF中,我们会发现,System.Windows.Controls.TreeView 中没有了 ExpandAll 方法。唯一跟展开有关系的属性和方法就是每一个TreeViewItem 中有一个属性IsExpanded 属性。这个属性定义这个节点是否打开。MSDN帮助如下:        Gets or sets whether the nested items in a TreeViewItem are expanded or collapsed. This is a dependency property.        这时候如何办呢? 很简单,自己写个递归,遍历这个树的每一个子节点,然后把每一个子节点的 IsExpanded 设置为 true.        你可以通过以下几个链接看到这个解决方案:        http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=976861&SiteID=1        http://shevaspace.spaces.live.com/blog/cns!FD9A0F1F8DD06954!463.entry        http://blogs.msdn.com/okoboji/archive/2006/09/20/764019.aspx          我们可以在上面解决方案基础上进一步发展。        用扩展方法来给 System.Windows.Controls.TreeView 类扩展个 ExpandAll方法方法。有关扩展方法的一些基础知识可以参看我之前的博客:C#3.0 中的扩展方法 (Extension Methods)       我的扩展方法代码如下: /// <summary>/// 郭红俊的扩展方法/// </summary>public static class ExtensionMethods{    /// <summary>    ///     /// </summary>    /// <param name="treeView"></param>    public static void ExpandAll(this System.Windows.Controls.TreeView treeView)    {        ExpandInternal(treeView);