SQL 2005启用组件Ad Hoc Distributed Queries

昨晚编程时遇到一个错误

    SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT'OpenRowset/OpenDatasource' 的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用 sp_configure 启用 'Ad Hoc Distributed Queries'。有关启用 'Ad Hoc Distributed Queries' 的详细信息,请参阅 SQL Server 联机丛书中的 "外围应用配置器"。

于是按照提示翻了一下SQL 2005的联机丛书,得知启用Ad Hoc Distributed Queries的方法,具体如下:

exec sp_configure 'show advanced options',1
reconfigure
exec sp_configure 'Ad Hoc Distributed Queries',1
reconfigure

使用完毕后,记得要关闭它,因为这是一个安全隐患

exec sp_configure 'Ad Hoc Distributed Queries',0
reconfigure
exec sp_configure 'show advanced options',0
reconfigure

汉之云于昨晚通关

昨天晚上终于把汉之云通关了,印象最深刻的一句话“英雄惟恨死不得其所

汉之云总得来说还是不错的,会去买正版收藏

正在下幻想三国志4,准备又有东西玩Laughing

使用crossdomain.xml让Silverlight可以跨域传输数据

今天做Silverlight时要使用网站的RSS数据,查了一下资料,发现要使用到一个crossdomain.xml的文件,把经验与大家分享一下

crossdomain.xml文件格式

crossdomain.xml的格式非常简单,其根节点为<cross-domain-policy> ,其下包含一个或多个<allow-access-from>节点,<allow-access-from>有一个属性domain,其值为允许访问的域,可以是确切的 IP 地址、一个确切的域或一个通配符域(任何域)。下边是两个例子:

程序代码
<?xml version="1.0"?>
<cross-domain-policy>
  <allow-access-from domain="www.lishewen.com.cn" />
  <allow-access-from domain="*.lishewen.com.cn" />
  <allow-access-from domain="222.217.221.16" />
</cross-domain-policy>

程序代码
<?xml version="1.0"?>
<cross-domain-policy>
  <allow-access-from domain="*" />
</cross-domain-policy>

第二个例子允许任何域的访问。对于crossdomain.xml文件存放位置,建议将其存放于站点根目录中!

如:http://bbs.lishewen.com.cn/crossdomain.xml

在这我也弄了个Silverlight的例子来测试

http://silverlight.lishewen.net.cn/SyndicationFeedReader/

配置Visual Studio 2008来调试.NET Framework源码的基本步骤

首先,这个功能在Visual Studio 2008 Express版里不支持。

1)安装Visual Studio 2008 QFE。这个QFE只是更新一个Visual Studio调试器的DLL,以便可以获取源代码,更多细节参加下载页面。

2)运行Visual Studio 2008依次展开Tools->Options->Debugging->General。如果你在Visual Basic Profile环境下运行,你需要将lower left of the Options Dialog标记为“Show All Settings”,然后继续(其它配置没有这个选项)。

设置以下两个设置:

◆关闭“Enable Just My Code”设置
◆打开“Enable Source Server Support”设置

你的设置会如下面所示:

3)下一步,选择“Symbols”页,然后设置符号下载URL和缓存位置。设置以下三个配置:

◆设置符号文件位置为:http://referencesource.microsoft.com/symbols
◆设置缓存位置。保证你的账户能读写这个位置。
◆打开“Search the above locations only when symbols are loaded manually”选项。

设置完毕后,应该如下图所示:

设置完毕。

调试进入框架的源代码。

通过这个例子,我们从一个空的C# Windows Application project开始,同样它可以在VB,Web或WPF工程上工作。创建这个工程:

在Form_Load上设置个断点:

运行你的工程命中断点,到调用堆栈窗口(CTRL+ALT+C).在调用堆栈里,右键单击System.Windows.Forms.dll,然后选择“Load Symbols”。这样会给System.Windows.Forms程序集加载符号,大小大概10M,所以下载速度就看看你的网络连接速度怎么样了。注意:在这个过程中Visual Studio会没有任何响应的。但是,这个下载对每个程序集来说只需要一次。这个符号(PDB)文件会缓存在你的机器上,在你刚才定义的文件夹里。

这样就会从服务器上下载这个DLL的符号了,你可以在状态栏里看到一些信息反映这个。注意:这个完成后调用帧字体会变成黑色,并且行号也可用了。注意:在每次调试会话中你都需要右键单击然后选择“Load Symbols”(但是,第二次的时候,这个符号已经缓存在本地了,所以无需再下载它们)。要了解更多信息请欣赏下面的高级用篇。

你已经下载了Windows Forms DLL的符号,现在可以查看代码了。你可以Step In上面的的代码行,也可以在调用堆栈里双击某一帧。在这里我们Step In(F11)。

在第一次进入代码的时候,我们会显示EULA。花点时间阅读EULA,如果你同意点击ACCEPT,然后这个源代码就会下载下来。

就这样,你可以调试.net框架源代码了。

现在,对每个你想调试的程序集,只要重复上面的步骤就可以了(注意:你只会看到一次EULA,不是每次都会看到的)。

有的时候,你要调试的程序集并不在调用堆栈上,比如下面这个例子:

在你调试进入Graphics.DrawRectangle,你需要加载System.Drawing.dll的符号。打开Modules Window(CTRL+ALT+U)。这个列表会显示调试中所有加载的模块(DLLs).在列表中找到System.Drawing.DLL,右键单击,然后选择Load Symbols。

注意:一旦符号文件下载了,符号文件会显示在“Symbol File”列中。

你现在可以使用F11进入Graphics.DrawRectangle的代码了。在这个case中,你会先进入PaintEventArgs.Graphics属性的代码。

输入法排序修改工具开源发布

一个解决MM疑难杂症的工具之一,用于修改输入法的切换顺序

使用方法
软件修改完成之后重启计算机即可

下载地址:http://imetool.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=35316

工作原理
通过修改注册表 HKEY_USERS\.DEFAULT\keyboard layout\preload 来实现

源代码下载地址:http://imetool.codeplex.com/

纯属学术研究欢迎转载

设定IIS使用32bit模式或64bit模式

有的时候IIS就是一定要使用32位, 仅管是装在64位的计算机上, 如何设定呢?

在64位的计算机上, 将 IIS 6.0 设定为32位模式运行
cscript %SystemDrive%\inetpub\AdminScripts\adsutil.vbs set w3svc/AppPools/Enable32bitAppOnWin64 true

在64位的计算机上, 将 IIS 6.0 设定为64位模式运行
cscript %SystemDrive%\inetpub\AdminScripts\adsutil.vbs set w3svc/AppPools/Enable32bitAppOnWin64 False

用AJAX优化DVBBS 8.0首页调用

动网的首页调用是方便,但如果调用过多的话首页加载会很慢,所以考虑使用AJAX异步调用来优化下

我的详细做法如下:

1、找到Dv_News.asp中的

Sub OutPut(Strings)
  Response.Write "document.write('"
  Response.Write Strings
  Response.Write "');"
  Response.Write vbNewline
End Sub 

将它改为

Sub OutPut(Strings)
 Response.Charset="gb2312"
 Response.Write Strings
End Sub

并另存为Dv_News1.asp

2、创建一个ajax.js文件,内容如下:

[code:js]

var spinner = "<img src='/images/spinner.gif' alt='正在加载' />";

///
/// Return a XMLHTTPRequest in a browser independent fashion.
///
function GetXMLHttp()
{
    var xmlhttp=false;
   
    try
    {
        xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch (e)
    {
        try
        {
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
        catch (E)
        {
            xmlhttp = false;
        }
    }

    // Mozilla then?
    if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
       xmlhttp = new XMLHttpRequest();
    }
   
    return xmlhttp;
}

[/code]

3、将

<script type="text/javascript" src="js/ajax.js"></script>

标签添加到首页<head></head>处

4、将原来的首页调用

<script src="Dv_News.asp?GetName=defnewpic"></script>

替换为

<div id="indexs_defnewpic"></div>

(注意它们的ID)

5、创建ajax_get.js文件内容如下:

[code:js]

function getSEIndex(se)
{
    var xmlhttp = GetXMLHttp();
    var div = document.getElementById("indexs_" + se);

    div.innerHTML = spinner + "正在加载信息...";

    xmlhttp.open("GET", "/Dv_News1.asp?GetName=" + se, true);
    xmlhttp.onreadystatechange=function()
    {
        if (xmlhttp.readyState==4)
        {
            div.innerHTML = xmlhttp.responseText;
        }
    }
    xmlhttp.send(null)
}

function NewsShow()
{
 getSEIndex('defnewpic');
 //按需要继续添加
}

NewsShow(); 

[/code]

另:如果你需要每隔一段时间更新一个首页可以在末尾添加上这一句

setInterval("NewsShow()",60000);

6、将

<script type="text/javascript" src="js/ajax_get.js"></script>

标签添加到首页</body>标签的前面

这样优化就弄好了,优化成果请参考:http://www.redguan.com/

相关讨论请移步到:http://bbs.lishewen.com.cn/showforum-14.aspx

ASP.Net控件客户端ID

今天帮人解决了一个问题,大致原因是对方服务器ASP.Net控件产生的客户端ID与我的服务器产生的不同,导致JS执行和Request提交接收数据有误
如我的是DataGrid1:_ctl3:tid,而对方的却是DataGrid1$ctl03$tid,代码是同样的
虽然我强行修改了DLL帮人解决了这个问题,但仍然觉���有必要去深究
根据MSDN的记载:
Control.ClientID 属性(获取由 ASP.NET 生成的服务器控件标识符。)
除了用来分隔 ID 值的是下划线字符而不是 IdSeparator 属性指定的字符以外,为控件生成的 ClientID 值与 UniqueID 值相同。默认情况下,IdSeparator 属性设置为冒号字符 (:)。由于 ClientID 值不包含冒号字符,因此,它可以用于不支持包含冒号的 ID 的 ECMAScript。
Control.UniqueID 属性(获取服务器控件的唯一的、以分层形式限定的标识符。)
分隔符字符。默认为“$”。
对比一下今天遇到的情况,发现同样的代码,由服务器端发往客户端的ID取值,我的是ClientID,而他的却是UniqueID
印象中大学时的课本、机房的实验,得出的ID都是以“$”分隔的,但我现在的实际情况和MSDN的记载却是以“:”分隔的
为什么会有这样的区别?ClientID的取值与服务器的设置、.Net的版本号之间又要什么关系(我的系统和环境一直都是保持最新的)?如果改变IdSeparator的值?自定义控件时如果定义ClientID的生成规则?
这些好像在我借给别人的黑皮书中有说明
先把问题记录下来,等别人还我书后再去寻找这些解答
.Net Framework Changelog这个也应该看一下(忽然想起来的)

什么是肩客?打字日赚是骗人的吗?——请小心骗子网站

     肩客就是通过互联网把自己的智慧、知识、能力、经验转换成实际收益的人。按肩客网自己的说明看起来又象是威客,至少目前还没有出现真正能赚钱的肩客网站。“肩客”只是骗子想另立门户,乱搞出来的名字。

      肩客平台-为肩客提供网络工作任务、教学、交流、结算一体化的工作平台。正规的肩客平台应当是和威客平台一样,作为第三方,起第三方的保障作用,不直接参与发布任务或完成任务。任何一家肩客平台或是威客平台,是由自己发布任务的都是骗子网站。大家要看清威客平台的角色,此角色就和支付宝一样,不参与网上产品销售,而是作为第三方,为商家和消费者提供信用保障,如果离开了第三方的信用保障体系,那么所有的交易都有可能是骗人的。

      最近出现的肩客网都是由不久前的威客明星骗子网站演变而来,骗子只是换了包装,改头换脸,而重操旧业,实际上威客明星和肩客网骗人的本质是一样的。

      目前出现的一家肩客网和一家威客明星已经被确认为骗子网站,加入需要交钱,实际上他们没有起第三方的信用保障,而是直接发布任务骗人,和真正的威客平台是有本质区别的。

      现在国内还没有任何一家真正意义上的肩客网站,现有的肩客网全是骗子,欺骗会员加入时全按以下要求:

要求1、肩客工作平台软件下载 下载 如何下载,要求下载的软件带有木马,会感染QQ或是盗其它的账号,以便骗子网站恶意传播骗子信息。
要求2、免费下载飞信,为什么指定要求下载飞信呢?因为骗子骗人下戴飞信后,骗子就可以获得佣金了,实际上肩客网并没有兼职任务可做,有的也只是欺骗会员们为骗子站点作宣传!
要求3、免费申请139邮箱,指定要求注册139邮箱也是为了获取佣金,实际上肩客网并没有兼职任务可做。

要求4、要求留下手机号,并回复短信开通指定业务,也是为了获取佣金提成,实际上肩客网并没有兼职任务可做。

      目前绝大多数网络兼职、打字日赚的网站皆是骗子网站。

      凡是加入就要交钱的肩客网都是骗子,大家要小心,千万不要浪费钱加入!就算不交钱也是要求你加入这注册那的。另外凡是没有正规备案号的网站都要小心,因为骗子害怕暴露身份,不敢备案。加入就要下载不明软件的,都要小心中木马。

看到不少人中招,在QQ乱发垃圾信息,特意撰写此文,欢迎转载

谷歌浏览器飞一般的JS执行速度

谷歌今早公布了自己的浏览器Chrome,该浏览器保持了Google一贯简洁的作风,并号称使用了JavaScript V8 引擎,可以通过多线程的虚拟机可以加速Javascript的执行,到底有多快一试便知

这次测试使用的是Javascript performance test(http://wd-testnet.world-direct.at/mozilla/dhtml/funo/jsTimeTest.htm)对各种基本运算进行一百万次的计算,下面是IE7和Chrome的测试结果

 

由上面看出,谷歌浏览器有20倍于IE的JS执行速度,前景非常乐观,微软如果再不在性能方面加强就有危险了