﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>博客园-陋室铭</title><link>http://www.cnblogs.com/cuihongyu3503319/</link><description>
                永远也不要停下学习的脚步(大道至简至易)
   
   
</description><language>zh-cn</language><lastBuildDate>Fri, 29 Aug 2008 23:31:37 GMT</lastBuildDate><pubDate>Fri, 29 Aug 2008 23:31:37 GMT</pubDate><ttl>60</ttl><item><title>今天做了一个DNN的模块，填到它默认的home页</title><link>http://www.cnblogs.com/cuihongyu3503319/archive/2008/08/29/1279678.html</link><dc:creator>宏宇</dc:creator><author>宏宇</author><pubDate>Fri, 29 Aug 2008 10:55:00 GMT</pubDate><guid>http://www.cnblogs.com/cuihongyu3503319/archive/2008/08/29/1279678.html</guid><wfw:comment>http://www.cnblogs.com/cuihongyu3503319/comments/1279678.html</wfw:comment><comments>http://www.cnblogs.com/cuihongyu3503319/archive/2008/08/29/1279678.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/cuihongyu3503319/comments/commentRss/1279678.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/cuihongyu3503319/services/trackbacks/1279678.html</trackback:ping><description><![CDATA[<p><font face="Verdana">今天做了一个DNN的模块，填到它默认的home页</font>,竟然是不登陆怎么都控制不了这个模块（点击button按钮不好用，怎么设置权限都不行），然后重新建了个页，填上去，竟然好用，我靠了，折腾我半天，我把默认home页干掉了，</p>
<p>现在系统两个登录，第一个是DNN网站管理登录，第二个是在DNN上的登录到其它系统的SSO登录</p>
<img src ="http://www.cnblogs.com/cuihongyu3503319/aggbug/1279678.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41960/" target="_blank">[新闻]微软4.86亿美元收购Greenfield</a>]]></description></item><item><title>RSA客户端js加密服务器C#解密(含源码)</title><link>http://www.cnblogs.com/cuihongyu3503319/archive/2008/08/28/1278871.html</link><dc:creator>宏宇</dc:creator><author>宏宇</author><pubDate>Thu, 28 Aug 2008 10:19:00 GMT</pubDate><guid>http://www.cnblogs.com/cuihongyu3503319/archive/2008/08/28/1278871.html</guid><wfw:comment>http://www.cnblogs.com/cuihongyu3503319/comments/1278871.html</wfw:comment><comments>http://www.cnblogs.com/cuihongyu3503319/archive/2008/08/28/1278871.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/cuihongyu3503319/comments/commentRss/1278871.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/cuihongyu3503319/services/trackbacks/1278871.html</trackback:ping><description><![CDATA[<p><font face="Verdana">本来用https感觉已经差不多了，客户非得要用户登录的时候再加密一次，</font></p>
<p><font face="Verdana">因为时间关系，原计划用C++做客户端Activex加密暂被取消，花了两天时间在网上到处找，先作出了一个js的客户端加密先用着&nbsp;源码地址</font></p>
<p><font face="Verdana"><a href="http://files.cnblogs.com/cuihongyu3503319/RSAWeb.rar">http://files.cnblogs.com/cuihongyu3503319/RSAWeb.rar</a></font></p>
<p>还有，发一下牢骚，MD做的我快吐血了，下面开始做activex</p>
<img src ="http://www.cnblogs.com/cuihongyu3503319/aggbug/1278871.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41959/" target="_blank">[新闻]苹果已然取代微软地位成行业众矢之的</a>]]></description></item><item><title>在服务器执行js脚本</title><link>http://www.cnblogs.com/cuihongyu3503319/archive/2008/08/28/1278573.html</link><dc:creator>宏宇</dc:creator><author>宏宇</author><pubDate>Thu, 28 Aug 2008 05:36:00 GMT</pubDate><guid>http://www.cnblogs.com/cuihongyu3503319/archive/2008/08/28/1278573.html</guid><wfw:comment>http://www.cnblogs.com/cuihongyu3503319/comments/1278573.html</wfw:comment><comments>http://www.cnblogs.com/cuihongyu3503319/archive/2008/08/28/1278573.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/cuihongyu3503319/comments/commentRss/1278573.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/cuihongyu3503319/services/trackbacks/1278573.html</trackback:ping><description><![CDATA[<p>javascript做为客户端脚本，实际是不能在服务器执行了，但是在.net中可以编写jscript服务器脚本来执行</p>
<p>首先，引用<font face="Verdana">Microsoft.JScript</font></p>
<p style="color: red">第一种方法，动态编译</p>
<p style="color: red">&nbsp;</p>
<p><font face="Verdana">public class JScripta<br />
{<br />
&nbsp;&nbsp;&nbsp; private static readonly CodeDomProvider _provider = new Microsoft.JScript.JScriptCodeProvider();<br />
&nbsp;&nbsp;&nbsp; private static Type _evaluateType;<br />
&nbsp;&nbsp;&nbsp; private const string EVAL_SOURCE = @"package aa<br />
{<br />
public class JScript<br />
{<br />
　　public static function a(s)<br />
　　{ <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var w='3'; <br />
　　　　return s + '1'+w +a2();&nbsp; <br />
　　}<br />
　　public static function a2()<br />
　　{ </font></p>
<p><font face="Verdana">　　　　return 'aaaaaaaaa';<br />
　　}<br />
}<br />
}";<br />
&nbsp;&nbsp;&nbsp; public static void JScriptUtil()<br />
&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CompilerParameters parameters = new CompilerParameters();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; parameters.GenerateInMemory = true;</font></p>
<p><font face="Verdana"></font>&nbsp;</p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CompilerResults results = _provider.CompileAssemblyFromSource(parameters,EVAL_SOURCE);</font></p>
<font face="Verdana">
<p><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Assembly assembly = results.CompiledAssembly;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; _evaluateType = assembly.GetType("aa.JScript");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; object[] w = new object[] { "a" };</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; object ww = _evaluateType.InvokeMember("md5", BindingFlags.InvokeMethod,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; null, null, w);<br />
&nbsp;&nbsp;&nbsp; }</p>
<p>}</p>
<p>&nbsp;</p>
<p style="color: red">第二种方法，把.js文件编译成dll</p>
<p style="color: red">csc.exe C#编译器<br />
vbc.exe vb.net编译器<br />
jsc.exe JScript.Net编译器<br />
vjc.exe J#编译器<br />
cl.exe C/C++编译器 </p>
<p style="color: red">在这里用jsc.exe</p>
<p style="color: red">可以做个.bat文件</p>
<p><font face="Verdana">CD E:\batch\Jscript</font></p>
<p><font face="Verdana">jsc /t:library E:\batch\Jscript\JScript.js</font></p>
<p><font face="Verdana">pause</font></p>
<p><font face="Verdana">CD..</font></p>
<p>如果提示没有<font face="Verdana">jsc.exe那么 把<font face="Verdana">jsc.exe</font>的路径添加到系统环境变量的path中去</font></p>
<p><span style="color: red">JScript.js代码如下</span></p>
<p><font face="Verdana">public class JScript<br />
{<br />
　　public static function a(s)<br />
　　{ <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var w='3'; <br />
　　　　return s + '1'+w +a2();&nbsp; <br />
　　}<br />
　　public static function a2()<br />
　　{ </font></p>
<p><font face="Verdana">　　　　return "aaaaaaaaa";<br />
　　}<br />
}</font></p>
<p>编译后引入dll</p>
<p style="color: red">object a=&nbsp;JScript.a("1");</p>
</font>
<img src ="http://www.cnblogs.com/cuihongyu3503319/aggbug/1278573.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41959/" target="_blank">[新闻]苹果已然取代微软地位成行业众矢之的</a>]]></description></item><item><title>vs设置语言后引用dll的一个错误</title><link>http://www.cnblogs.com/cuihongyu3503319/archive/2008/08/26/1276788.html</link><dc:creator>宏宇</dc:creator><author>宏宇</author><pubDate>Tue, 26 Aug 2008 08:24:00 GMT</pubDate><guid>http://www.cnblogs.com/cuihongyu3503319/archive/2008/08/26/1276788.html</guid><wfw:comment>http://www.cnblogs.com/cuihongyu3503319/comments/1276788.html</wfw:comment><comments>http://www.cnblogs.com/cuihongyu3503319/archive/2008/08/26/1276788.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/cuihongyu3503319/comments/commentRss/1276788.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/cuihongyu3503319/services/trackbacks/1276788.html</trackback:ping><description><![CDATA[本来我的vs2005是英文版的，DLL都应该的1033文件夹下，我安装sql2005中文版后，设置成了中文版，这时我引用系统DLL时总提示找不到2052文件夹下的DLL,我把版本改为英文后恢复正常
<img src ="http://www.cnblogs.com/cuihongyu3503319/aggbug/1276788.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41958/" target="_blank">[新闻]Intel 收购 Poky Linux ,为 MID 注入新的动力</a>]]></description></item><item><title>ServerVariable（环境变量）</title><link>http://www.cnblogs.com/cuihongyu3503319/archive/2008/08/22/1274293.html</link><dc:creator>宏宇</dc:creator><author>宏宇</author><pubDate>Fri, 22 Aug 2008 09:58:00 GMT</pubDate><guid>http://www.cnblogs.com/cuihongyu3503319/archive/2008/08/22/1274293.html</guid><wfw:comment>http://www.cnblogs.com/cuihongyu3503319/comments/1274293.html</wfw:comment><comments>http://www.cnblogs.com/cuihongyu3503319/archive/2008/08/22/1274293.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/cuihongyu3503319/comments/commentRss/1274293.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/cuihongyu3503319/services/trackbacks/1274293.html</trackback:ping><description><![CDATA[格式：Request.ServerVariables("variable") <br />
<br />
浏览器版本号 <br />
Request.ServerVariables("HTTP_USER_AGENT") <br />
<br />
获取用户的IP地址 <br />
Request.ServerVariables("REMOTE_ADDR") <br />
<br />
获取请求的方法 <br />
Request.ServerVariables("REQUEST_METHOD") <br />
<br />
获取服务器的IP地址 <br />
Request.ServerVariables("LOCAL_ADDR") <br />
<br />
通过环境变量不仅能知道服务器主机的IP，也能够知道它的主机名 <br />
Request.ServerVariables("SERVER_NAME") <br />
<br />
使用PATH_INFO环境变量 <br />
Request.ServerVariables("PATH_INFO") <br />
<br />
获取请求程序所发送内容的字符总数 <br />
Request.ServerVariables("CONTENT_LENGTH") <br />
<br />
获取请求的信息类型 <br />
Request.ServerVariables("CONTENT_TYPE") <br />
<br />
获取网关接口 <br />
Request.ServerVariables("GATEWAY_INTERFACE") <br />
<br />
获取URL的附加信息 <br />
Request.ServerVariables("QUERY_STRING") <br />
<br />
获取当前程序的文件名（包含虚拟路径） <br />
Request.ServerVariables("SCRIPT_NAME") <br />
<br />
获取服务器接受请求的端口 <br />
Request.ServerVariables("SERVER_PORT") <br />
<br />
获取服务器遵从的协议及版本号 <br />
Request.ServerVariables("SERVER_PROTOCOL") <br />
<br />
获取用户所使用的语言 <br />
Request.ServerVariables("HTTP_ACCEPT_LANGUAGE") <br />
<br />
引用网页 <br />
Request.ServerVariables("HTTP_REFERER") <br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp; ALL_HTTP 客户端发送的所有 HTTP 标题文件。 <br />
&nbsp;&nbsp;&nbsp;&nbsp; ALL_RAW 检索未处理表格中所有的标题。ALL_RAW 和 ALL_HTTP 不同，ALL_HTTP 在标题文件名前面放置 HTTP_ prefix，并且标题名称总是大写的。使用 ALL_RAW 时，标题名称和值只在客户端发送时才出现。 <br />
&nbsp;&nbsp;&nbsp;&nbsp; APPL_MD_PATH 检索 ISAPI DLL 的 (WAM) Application 的元数据库路径。 <br />
&nbsp;&nbsp;&nbsp;&nbsp; APPL_PHYSICAL_PATH 检索与元数据库路径相应的物理路径。IIS 通过将 APPL_MD_PATH 转换为物理（目录）路径以返回值。 <br />
&nbsp;&nbsp;&nbsp;&nbsp; AUTH_PASSWORD 该值输入到客户端的鉴定对话中。只有使用基本鉴定时，该变量才可用。 <br />
&nbsp;&nbsp;&nbsp;&nbsp; AUTH_TYPE 这是用户访问受保护的脚本时，服务器用于检验用户的验证方法。 <br />
&nbsp;&nbsp;&nbsp;&nbsp; AUTH_USER 未被鉴定的用户名。 <br />
&nbsp;&nbsp;&nbsp;&nbsp; CERT_COOKIE 客户端验证的唯一 ID，以字符串方式返回。可作为整个客户端验证的签字。 <br />
&nbsp;&nbsp;&nbsp;&nbsp; CERT_FLAGS 如有客户端验证，则 bit0 为 1。 <br />
&nbsp;&nbsp;&nbsp;&nbsp; 如果客户端验证的验证人无效（不在服务器承认的 CA 列表中），bit1 被设置为 1。 <br />
&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp; CERT_ISSUER 用户验证中的颁布者字段（O=MS，OU=IAS，CN=user name，C=USA）。 <br />
&nbsp;&nbsp;&nbsp;&nbsp; CERT_KEYSIZE 安全套接字层连接关键字的位数，如 128。 <br />
&nbsp;&nbsp;&nbsp;&nbsp; CERT_SECRETKEYSIZE 服务器验证私人关键字的位数。如 1024。 <br />
&nbsp;&nbsp;&nbsp;&nbsp; CERT_SERIALNUMBER 用户验证的序列号字段。 <br />
&nbsp;&nbsp;&nbsp;&nbsp; CERT_SERVER_ISSUER 服务器验证的颁发者字段。 <br />
&nbsp;&nbsp;&nbsp;&nbsp; CERT_SERVER_SUBJECT 服务器验证的主字段。 <br />
&nbsp;&nbsp;&nbsp;&nbsp; CERT_SUBJECT 客户端验证的主字段。 <br />
&nbsp;&nbsp;&nbsp;&nbsp; CONTENT_LENGTH 客户端发出内容的长度。 <br />
&nbsp;&nbsp;&nbsp;&nbsp; CONTENT_TYPE 内容的数据类型。同附加信息的查询一起使用，如 HTTP 查询 GET、 POST 和 PUT。 <br />
&nbsp;&nbsp;&nbsp;&nbsp; GATEWAY_INTERFACE 服务器使用的 CGI 规格的修订。格式为 CGI/revision。 <br />
&nbsp;&nbsp;&nbsp;&nbsp; HTTP_&lt;HeaderName&gt; HeaderName 存储在标题文件中的值。未列入该表的标题文件必须以 HTTP_ 作为前缀，以使 ServerVariables 集合检索其值。 <br />
&nbsp;&nbsp;&nbsp;&nbsp; 注意 服务器将 HeaderName 中的下划线（_）解释为实际标题中的破折号。例如，如果您指定 HTTP_MY_HEADER，服务器将搜索以 MY-HEADER 为名发送的标题文件。 <br />
&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp; HTTPS 如果请求穿过安全通道（SSL），则返回 ON。如果请求来自非安全通道，则返回 OFF。 <br />
&nbsp;&nbsp;&nbsp;&nbsp; HTTPS_KEYSIZE 安全套接字层连接关键字的位数，如 128。 <br />
&nbsp;&nbsp;&nbsp;&nbsp; HTTPS_SECRETKEYSIZE 服务器验证私人关键字的位数。如 1024。 <br />
&nbsp;&nbsp;&nbsp;&nbsp; HTTPS_SERVER_ISSUER 服务器验证的颁发者字段。 <br />
&nbsp;&nbsp;&nbsp;&nbsp; HTTPS_SERVER_SUBJECT 服务器验证的主字段。 <br />
&nbsp;&nbsp;&nbsp;&nbsp; INSTANCE_ID 文本格式 IIS 实例的 ID。如果实例 ID 为 1，则以字符形式出现。使用该变量可以检索请求所属的（元数据库中）Web 服务器实例的 ID。 <br />
&nbsp;&nbsp;&nbsp;&nbsp; INSTANCE_META_PATH 响应请求的 IIS 实例的元数据库路径。 <br />
&nbsp;&nbsp;&nbsp;&nbsp; LOCAL_ADDR 返回接受请求的服务器地址。如果在绑定多个 IP 地址的多宿主机器上查找请求所使用的地址时，这条变量非常重要。 <br />
&nbsp;&nbsp;&nbsp;&nbsp; LOGON_USER 用户登录 Windows NT&amp;reg; 的帐号。 <br />
&nbsp;&nbsp;&nbsp;&nbsp; PATH_INFO 客户端提供的额外路径信息。可以使用这些虚拟路径和 PATH_INFO 服务器变量访问脚本。如果该信息来自 URL，在到达 CGI 脚本前就已经由服务器解码了。 <br />
&nbsp;&nbsp;&nbsp;&nbsp; PATH_TRANSLATED PATH_INFO 转换后的版本，该变量获取路径并进行必要的由虚拟至物理的映射。 <br />
&nbsp;&nbsp;&nbsp;&nbsp; QUERY_STRING 查询 HTTP 请求中问号（?）后的信息。 <br />
&nbsp;&nbsp;&nbsp;&nbsp; REMOTE_ADDR 发出请求的远程主机的 IP 地址。 <br />
&nbsp;&nbsp;&nbsp;&nbsp; REMOTE_HOST 发出请求的主机名称。如果服务器无此信息，它将设置为空的 MOTE_ADDR 变量。 <br />
&nbsp;&nbsp;&nbsp;&nbsp; REMOTE_USER 用户发送的未映射的用户名字符串。该名称是用户实际发送的名称，与服务器上验证过滤器修改过后的名称相对。 <br />
&nbsp;&nbsp;&nbsp;&nbsp; REQUEST_METHOD 该方法用于提出请求。相当于用于 HTTP 的 GET、HEAD、POST 等等。 <br />
&nbsp;&nbsp;&nbsp;&nbsp; SCRIPT_NAME 执行脚本的虚拟路径。用于自引用的 URL。 <br />
&nbsp;&nbsp;&nbsp;&nbsp; SERVER_NAME 出现在自引用 UAL 中的服务器主机名、DNS 化名或 IP 地址。 <br />
&nbsp;&nbsp;&nbsp;&nbsp; SERVER_PORT 发送请求的端口号。 <br />
&nbsp;&nbsp;&nbsp;&nbsp; SERVER_PORT_SECURE 包含 0 或 1 的字符串。如果安全端口处理了请求，则为 1，否则为 0。 <br />
&nbsp;&nbsp;&nbsp;&nbsp; SERVER_PROTOCOL 请求信息协议的名称和修订。格式为 protocol/revision 。 <br />
&nbsp;&nbsp;&nbsp;&nbsp; SERVER_SOFTWARE 应答请求并运行网关的服务器软件的名称和版本。格式为 name/version 。 <br />
&nbsp;&nbsp;&nbsp;&nbsp; URL 提供 URL 的基本部分。 <br />
<img src ="http://www.cnblogs.com/cuihongyu3503319/aggbug/1274293.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41957/" target="_blank">[新闻]雅虎将关闭社交网站Mash</a>]]></description></item><item><title>Net线程问题解答(转)</title><link>http://www.cnblogs.com/cuihongyu3503319/archive/2008/08/22/1274224.html</link><dc:creator>宏宇</dc:creator><author>宏宇</author><pubDate>Fri, 22 Aug 2008 08:34:00 GMT</pubDate><guid>http://www.cnblogs.com/cuihongyu3503319/archive/2008/08/22/1274224.html</guid><wfw:comment>http://www.cnblogs.com/cuihongyu3503319/comments/1274224.html</wfw:comment><comments>http://www.cnblogs.com/cuihongyu3503319/archive/2008/08/22/1274224.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/cuihongyu3503319/comments/commentRss/1274224.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/cuihongyu3503319/services/trackbacks/1274224.html</trackback:ping><description><![CDATA[摘要: 目录基础篇 怎样创建一个线程 受托管的线程与 Windows线程 前台线程与后台线程 名为BeginXXX和EndXXX的方法是做什么用的 异步和多线程有什么关联 WinForm多线程编程篇 我的多线程WinForm程序老是抛出InvalidOperationException ，怎么解决？ Invoke，BeginInvoke干什么用的，内部是怎么实现的 每个线程都有消息队列吗? 为什么Winf&nbsp;&nbsp;<a href='http://www.cnblogs.com/cuihongyu3503319/archive/2008/08/22/1274224.html'>阅读全文</a><img src ="http://www.cnblogs.com/cuihongyu3503319/aggbug/1274224.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41957/" target="_blank">[新闻]雅虎将关闭社交网站Mash</a>]]></description></item><item><title>vs2005 Team System的版本</title><link>http://www.cnblogs.com/cuihongyu3503319/archive/2008/08/21/1273288.html</link><dc:creator>宏宇</dc:creator><author>宏宇</author><pubDate>Thu, 21 Aug 2008 07:48:00 GMT</pubDate><guid>http://www.cnblogs.com/cuihongyu3503319/archive/2008/08/21/1273288.html</guid><wfw:comment>http://www.cnblogs.com/cuihongyu3503319/comments/1273288.html</wfw:comment><comments>http://www.cnblogs.com/cuihongyu3503319/archive/2008/08/21/1273288.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/cuihongyu3503319/comments/commentRss/1273288.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/cuihongyu3503319/services/trackbacks/1273288.html</trackback:ping><description><![CDATA[<p>2008也应该是这样</p>
<p>Visual Studio 2005 Team Suite 完整版 <br />
Visual Studio 2005 Team Edition for Software Architects 架构师版 <br />
Visual Studio 2005 Team Edition for Software Developers 开发人员版 <br />
Visual Studio 2005 Team Edition for Software Testers 测试人员版 <br />
Visual Studio 2005 Team Foundation Server TFS Server 源代码管理服务器 <br />
Visual Studio 2005 Team Test Load Agent 压力测试工具 </p>
<img src ="http://www.cnblogs.com/cuihongyu3503319/aggbug/1273288.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41956/" target="_blank">[新闻]中国互联网战争局势图</a>]]></description></item><item><title>DataTable的合并(小技巧)</title><link>http://www.cnblogs.com/cuihongyu3503319/archive/2008/08/20/1272057.html</link><dc:creator>宏宇</dc:creator><author>宏宇</author><pubDate>Wed, 20 Aug 2008 03:34:00 GMT</pubDate><guid>http://www.cnblogs.com/cuihongyu3503319/archive/2008/08/20/1272057.html</guid><wfw:comment>http://www.cnblogs.com/cuihongyu3503319/comments/1272057.html</wfw:comment><comments>http://www.cnblogs.com/cuihongyu3503319/archive/2008/08/20/1272057.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/cuihongyu3503319/comments/commentRss/1272057.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/cuihongyu3503319/services/trackbacks/1272057.html</trackback:ping><description><![CDATA[//两个结构一样的DT合并 <br />
DataTable DataTable1 = new DataTable(); <br />
DataTable DataTable2 = new DataTable(); <br />
DataTable newDataTable = DataTable1.Clone(); <br />
<br />
object[] obj = new object[newDataTable.Columns.Count]; <br />
for (int i = 0; i &lt; DataTable1.Rows.Count; i++) <br />
{ <br />
DataTable1.Rows[i].ItemArray.CopyTo(obj,0); <br />
newDataTable.Rows.Add(obj); <br />
} <br />
<br />
for (int i = 0; i &lt; DataTable2.Rows.Count; i++) <br />
{ <br />
DataTable2.Rows[i].ItemArray.CopyTo(obj,0); <br />
newDataTable.Rows.Add(obj); <br />
} <br />
//两个结构不同的DT合并 <br />
/// &lt;summary&gt; <br />
/// 将两个列不同的DataTable合并成一个新的DataTable <br />
/// &lt;/summary&gt; <br />
/// &lt;param name="dt1"&gt;表1&lt;/param&gt; <br />
/// &lt;param name="dt2"&gt;表2&lt;/param&gt; <br />
/// &lt;param name="DTName"&gt;合并后新的表名&lt;/param&gt; <br />
/// &lt;returns&gt;&lt;/returns&gt; <br />
private DataTable UniteDataTable( DataTable dt1 ,DataTable dt2 ,string DTName) <br />
{ <br />
DataTable dt3 = dt1.Clone(); <br />
for( int i = 0 ;i &lt; dt2.Columns.Count ;i ++ ) <br />
{ <br />
dt3.Columns.Add( dt2.Columns[i].ColumnName ) ; <br />
} <br />
object[] obj = new object[dt3.Columns.Count]; <br />
<br />
for (int i = 0; i &lt; dt1.Rows.Count; i++) <br />
{ <br />
dt1.Rows[i].ItemArray.CopyTo(obj,0); <br />
dt3.Rows.Add(obj); <br />
} <br />
<br />
if( dt1.Rows.Count &gt;= dt2.Rows.Count ) <br />
{ <br />
for( int i = 0 ;i &lt; dt2.Rows.Count ;i++ ) <br />
{ <br />
for( int j = 0 ;j &lt; dt2.Columns.Count ;j ++ ) <br />
{ <br />
dt3.Rows[i][j+dt1.Columns.Count] = dt2.Rows[i][j].ToString() ; <br />
} <br />
} <br />
} <br />
else <br />
{ <br />
DataRow dr3 ; <br />
for( int i = 0 ;i &lt; dt2.Rows.Count - dt1.Rows.Count ;i ++ ) <br />
{ <br />
dr3 = dt3.NewRow() ; <br />
dt3.Rows.Add( dr3 ) ; <br />
} <br />
for( int i = 0 ;i &lt; dt2.Rows.Count ;i++ ) <br />
{ <br />
for( int j = 0 ;j &lt; dt2.Columns.Count ;j ++ ) <br />
{ <br />
dt3.Rows[i][j+dt1.Columns.Count] = dt2.Rows[i][j].ToString() ; <br />
} <br />
} <br />
} <br />
dt3.TableName = DTName ; //设置DT的名字 <br />
return dt3 ; <br />
}</cn> 
 <img src ="http://www.cnblogs.com/cuihongyu3503319/aggbug/1272057.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41955/" target="_blank">[新闻]开源多点触摸技术试运行</a>]]></description></item><item><title>.net调用存储过程时的输出函数</title><link>http://www.cnblogs.com/cuihongyu3503319/archive/2008/08/19/1271583.html</link><dc:creator>宏宇</dc:creator><author>宏宇</author><pubDate>Tue, 19 Aug 2008 09:29:00 GMT</pubDate><guid>http://www.cnblogs.com/cuihongyu3503319/archive/2008/08/19/1271583.html</guid><wfw:comment>http://www.cnblogs.com/cuihongyu3503319/comments/1271583.html</wfw:comment><comments>http://www.cnblogs.com/cuihongyu3503319/archive/2008/08/19/1271583.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/cuihongyu3503319/comments/commentRss/1271583.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/cuihongyu3503319/services/trackbacks/1271583.html</trackback:ping><description><![CDATA[<p><font face="Verdana">两年以前，我曾经因为输出的参数取不全而不用这个&nbsp;Output了，今天我才知道bug所在，我没有指定Output的大小&nbsp;,如代码红字(ExecuteSqlCommandSql就是个执行存储过程的方法，这不写了)&nbsp;&nbsp;&nbsp; </font></p>
<p>另外，如果定义parameters[3].Direction = ParameterDirection.<font face="Verdana">InputOutput</font>;的话，如果不指定大小，那么你输入多长，那么返回字符串的长度就是多长</p>
<p><font face="Verdana">public String ChangePassword(String OrginUserId, String Password, String NewPassword)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SqlParameter[] parameters = {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new SqlParameter("@OrginUserId",OrginUserId),<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new SqlParameter("@Password",Password),<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new SqlParameter("@NewPassword",NewPassword),<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: red">new SqlParameter("@ErrorMessage", SqlDbType.NVarChar,15)</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; };<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; parameters[3].Direction = ParameterDirection.Output;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SQLHelper MySQLHelper = new SQLHelper();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String ReturnStr;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try<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; MySQLHelper.ExecuteSqlCommandSql(_ChangePassword, parameters);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ReturnStr = parameters[3].Value.ToString();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; catch (Exception ex)<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; throw ex;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return ReturnStr;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</font></p>
<img src ="http://www.cnblogs.com/cuihongyu3503319/aggbug/1271583.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41954/" target="_blank">[新闻]国内软件外包高管集聚大连 探讨竞争与应对策略</a>]]></description></item><item><title>简单的批量更新（小技巧）</title><link>http://www.cnblogs.com/cuihongyu3503319/archive/2008/08/19/1271184.html</link><dc:creator>宏宇</dc:creator><author>宏宇</author><pubDate>Tue, 19 Aug 2008 06:45:00 GMT</pubDate><guid>http://www.cnblogs.com/cuihongyu3503319/archive/2008/08/19/1271184.html</guid><wfw:comment>http://www.cnblogs.com/cuihongyu3503319/comments/1271184.html</wfw:comment><comments>http://www.cnblogs.com/cuihongyu3503319/archive/2008/08/19/1271184.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/cuihongyu3503319/comments/commentRss/1271184.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/cuihongyu3503319/services/trackbacks/1271184.html</trackback:ping><description><![CDATA[<p><font face="Verdana">UPDATE Table2<br />
SET<br />
a2 = Table1.a1,<br />
b2 = Table1.b1<br />
FROM Table1<br />
WHERE Table2.id1=Table1.id1</font></p>
<p>&nbsp;</p>
<img src ="http://www.cnblogs.com/cuihongyu3503319/aggbug/1271184.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41954/" target="_blank">[新闻]国内软件外包高管集聚大连 探讨竞争与应对策略</a>]]></description></item><item><title>UNION 和UNION ALL 的区别 </title><link>http://www.cnblogs.com/cuihongyu3503319/archive/2008/08/18/1270286.html</link><dc:creator>宏宇</dc:creator><author>宏宇</author><pubDate>Mon, 18 Aug 2008 06:16:00 GMT</pubDate><guid>http://www.cnblogs.com/cuihongyu3503319/archive/2008/08/18/1270286.html</guid><wfw:comment>http://www.cnblogs.com/cuihongyu3503319/comments/1270286.html</wfw:comment><comments>http://www.cnblogs.com/cuihongyu3503319/archive/2008/08/18/1270286.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/cuihongyu3503319/comments/commentRss/1270286.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/cuihongyu3503319/services/trackbacks/1270286.html</trackback:ping><description><![CDATA[<p style="text-indent: 21.75pt"><span style="font-family: 宋体">在数据库中，</span>UNION<span style="font-family: 宋体">和</span>UNION ALL<span style="font-family: 宋体">关键字都是将两个结果集合并为一个，但这两者从使用和效率上来说都有所不同。</span></p>
<p style="text-indent: 21.75pt">UNION<span style="font-family: 宋体">在进行表链接后会筛选掉重复的记录，所以在表链接后会对所产生的结果集进行排序运算，删除重复的记录再返回结果。</span></p>
<p style="text-indent: 21pt"><span style="color: black; font-family: 宋体">如：</span><span style="color: black; font-family: ''">&nbsp;<br />
&nbsp;</span><span style="color: black; font-family: ''">select * from test_union1 <br />
</span><span style="color: black; font-family: ''">&nbsp;&nbsp; union <br />
</span><span style="color: black; font-family: ''">&nbsp;select * from test_union2 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: black; font-family: 宋体">这个</span><span style="color: black; font-family: ''"><a onclick="javascript:tagshow(event, 'SQL');" href="http://www.cnblogs.com/cuihongyu3503319/admin/javascript:;" target="_self"><u><strong>SQL</strong></u></a></span><span style="color: black; font-family: 宋体">在运行时先取出两个表的结果，再用排序空间进行排序删除重复的记录，最后返回结果集，如果表数据量大的话可能会导致用磁盘进行排序。</span><span style="color: black; font-family: ''"> <br />
&nbsp;&nbsp;&nbsp; </span><span style="font-family: 宋体">而</span>UNION ALL<span style="color: black; font-family: 宋体">只是简单的将两个结果合并后就返回。这样，如果返回的两个结果集中有重复的数据，那么返回的结果集就会包含重复的数据了。</span><span style="color: black; font-family: ''"> <br />
&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: black; font-family: 宋体">从效率上说，</span><span style="color: black; font-family: ''">UNION ALL</span><span style="color: black; font-family: 宋体">要比</span><span style="color: black; font-family: ''">UNION</span><span style="color: black; font-family: 宋体">快很多，所以，如果可以确认合并的两个结果集中不包含重复的数据的话，那么就使用</span><span style="color: black; font-family: ''">UNION ALL</span><span style="color: black; font-family: 宋体">，如下：</span><span style="color: black; font-family: ''"> <br />
<span style="color: black; font-family: ''">select * from test_union1 <br />
</span><span style="color: black; font-family: ''">union all <br />
</span><span style="color: black; font-family: ''">select * from test_union2 <br />
<br />
</span>
<p><span style="font-family: 宋体">使用</span> UNION <span style="font-family: 宋体">组合查询的结果集有两个最基本的规则：</span></p>
<p>1<span style="font-family: 宋体">。所有查询中的列数和列的顺序必须相同。</span> </p>
<p>2<span style="font-family: 宋体">。数据类型必须兼容 <br />
</span></p>
</span>
<img src ="http://www.cnblogs.com/cuihongyu3503319/aggbug/1270286.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41953/" target="_blank">[新闻]Mac OS X 10.5.5 Build 9F23 测试版和 Safari 4 预览版</a>]]></description></item><item><title>弹出div后其它不能操作(小技巧)</title><link>http://www.cnblogs.com/cuihongyu3503319/archive/2008/08/18/1270161.html</link><dc:creator>宏宇</dc:creator><author>宏宇</author><pubDate>Mon, 18 Aug 2008 03:00:00 GMT</pubDate><guid>http://www.cnblogs.com/cuihongyu3503319/archive/2008/08/18/1270161.html</guid><wfw:comment>http://www.cnblogs.com/cuihongyu3503319/comments/1270161.html</wfw:comment><comments>http://www.cnblogs.com/cuihongyu3503319/archive/2008/08/18/1270161.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/cuihongyu3503319/comments/commentRss/1270161.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/cuihongyu3503319/services/trackbacks/1270161.html</trackback:ping><description><![CDATA[<p><font face="Verdana">&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;<br />
&lt;html xmlns="http://www.w3.org/1999/xhtml"&gt;<br />
&lt;head&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8" /&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;title&gt;无标题文档&lt;/title&gt;</font></p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp; &lt;script language="javascript"&gt;<br />
function alertWin(title, msg, w, h){ <br />
&nbsp;&nbsp;&nbsp; var titleheight = "22px"; // 提示窗口标题高度 <br />
&nbsp;&nbsp;&nbsp; var bordercolor = "#666699"; // 提示窗口的边框颜色 <br />
&nbsp;&nbsp;&nbsp; var titlecolor = "#FFFFFF"; // 提示窗口的标题颜色 <br />
&nbsp;&nbsp;&nbsp; var titlebgcolor = "#666699"; // 提示窗口的标题背景色<br />
&nbsp;&nbsp;&nbsp; var bgcolor = "#FFFFFF"; // 提示内容的背景色<br />
&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; var iWidth = document.documentElement.clientWidth; <br />
&nbsp;&nbsp;&nbsp; var iHeight = document.documentElement.clientHeight; <br />
&nbsp;&nbsp;&nbsp; var bgObj = document.createElement("div"); <br />
&nbsp;&nbsp;&nbsp; bgObj.style.cssText = "position:absolute;left:0px;top:0px;width:"+iWidth+"px;height:"+Math.max(document.body.clientHeight, iHeight)+"px;filter:Alpha(Opacity=30);opacity:0.3;background-color:#000000;z-index:101;";<br />
&nbsp;&nbsp;&nbsp; document.body.appendChild(bgObj); <br />
&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; var msgObj=document.createElement("div");<br />
&nbsp;&nbsp;&nbsp; msgObj.style.cssText = "position:absolute;font:11px '宋体';top:"+(iHeight-h)/2+"px;left:"+(iWidth-w)/2+"px;width:"+w+"px;height:"+h+"px;text-align:center;border:1px solid "+bordercolor+";background-color:"+bgcolor+";padding:1px;line-height:22px;z-index:102;";<br />
&nbsp;&nbsp;&nbsp; document.body.appendChild(msgObj);<br />
&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; var table = document.createElement("table");<br />
&nbsp;&nbsp;&nbsp; msgObj.appendChild(table);<br />
&nbsp;&nbsp;&nbsp; table.style.cssText = "margin:0px;border:0px;padding:0px;";<br />
&nbsp;&nbsp;&nbsp; table.cellSpacing = 0;<br />
&nbsp;&nbsp;&nbsp; var tr = table.insertRow(-1);<br />
&nbsp;&nbsp;&nbsp; var titleBar = tr.insertCell(-1);<br />
&nbsp;&nbsp;&nbsp; titleBar.style.cssText = "width:100%;height:"+titleheight+"px;text-align:left;padding:3px;margin:0px;font:bold 13px '宋体';color:"+titlecolor+";border:1px solid " + bordercolor + ";cursor:move;background-color:" + titlebgcolor;<br />
&nbsp;&nbsp;&nbsp; titleBar.style.paddingLeft = "10px";<br />
&nbsp;&nbsp;&nbsp; titleBar.innerHTML = title;<br />
&nbsp;&nbsp;&nbsp; var moveX = 0;<br />
&nbsp;&nbsp;&nbsp; var moveY = 0;<br />
&nbsp;&nbsp;&nbsp; var moveTop = 0;<br />
&nbsp;&nbsp;&nbsp; var moveLeft = 0;<br />
&nbsp;&nbsp;&nbsp; var moveable = false;<br />
&nbsp;&nbsp;&nbsp; var docMouseMoveEvent = document.onmousemove;<br />
&nbsp;&nbsp;&nbsp; var docMouseUpEvent = document.onmouseup;<br />
&nbsp;&nbsp;&nbsp; titleBar.onmousedown = function() {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var evt = getEvent();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; moveable = true; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; moveX = evt.clientX;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; moveY = evt.clientY;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; moveTop = parseInt(msgObj.style.top);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; moveLeft = parseInt(msgObj.style.left);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document.onmousemove = function() {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (moveable) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var evt = getEvent();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var x = moveLeft + evt.clientX - moveX;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var y = moveTop + evt.clientY - moveY;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ( x &gt; 0 &amp;&amp;( x + w &lt; iWidth) &amp;&amp; y &gt; 0 &amp;&amp; (y + h &lt; iHeight) ) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; msgObj.style.left = x + "px";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; msgObj.style.top = y + "px";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&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; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; };<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document.onmouseup = function () { <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (moveable) { <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document.onmousemove = docMouseMoveEvent;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document.onmouseup = docMouseUpEvent;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; moveable = false; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; moveX = 0;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; moveY = 0;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; moveTop = 0;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; moveLeft = 0;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; };<br />
&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; var closeBtn = tr.insertCell(-1);<br />
&nbsp;&nbsp;&nbsp; closeBtn.style.cssText = "cursor:pointer; padding:2px;background-color:" + titlebgcolor;<br />
&nbsp;&nbsp;&nbsp; closeBtn.innerHTML = "&lt;span style='font-size:15pt; color:"+titlecolor+";'&gt;&#215;&lt;/span&gt;";<br />
&nbsp;&nbsp;&nbsp; closeBtn.onclick = function(){ <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document.body.removeChild(bgObj); <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document.body.removeChild(msgObj); <br />
&nbsp;&nbsp;&nbsp; } <br />
&nbsp;&nbsp;&nbsp; var msgBox = table.insertRow(-1).insertCell(-1);<br />
&nbsp;&nbsp;&nbsp; msgBox.style.cssText = "font:10pt '宋体';";<br />
&nbsp;&nbsp;&nbsp; msgBox.colSpan&nbsp; = 2;<br />
&nbsp;&nbsp;&nbsp; msgBox.innerHTML = msg;<br />
&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; // 获得事件Event对象，用于兼容IE和FireFox<br />
&nbsp;&nbsp;&nbsp; function getEvent() {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return window.event || arguments.callee.caller.arguments[0];<br />
&nbsp;&nbsp;&nbsp; }<br />
} <br />
&nbsp;&nbsp;&nbsp; &lt;/script&gt;</font></p>
<p><font face="Verdana">&lt;/head&gt;<br />
&lt;body&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;input type="button" value="点这里" onclick="alertWin('标题','这里是内容',300,200);" /&gt;<br />
&lt;/body&gt;<br />
&lt;/html&gt;</font></p>
<p><font face="Verdana"><span style="color: red"><font face="Verdana">就是用一个占整个页的div做页面的最后输出把其它盖上了,弹出的操作在这个输出之后(z-index)</font></span><br />
</p>
</font>
<img src ="http://www.cnblogs.com/cuihongyu3503319/aggbug/1270161.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41953/" target="_blank">[新闻]Mac OS X 10.5.5 Build 9F23 测试版和 Safari 4 预览版</a>]]></description></item><item><title>利用SSL给IIS加把锁(转) </title><link>http://www.cnblogs.com/cuihongyu3503319/archive/2008/08/15/1268805.html</link><dc:creator>宏宇</dc:creator><author>宏宇</author><pubDate>Fri, 15 Aug 2008 08:25:00 GMT</pubDate><guid>http://www.cnblogs.com/cuihongyu3503319/archive/2008/08/15/1268805.html</guid><wfw:comment>http://www.cnblogs.com/cuihongyu3503319/comments/1268805.html</wfw:comment><comments>http://www.cnblogs.com/cuihongyu3503319/archive/2008/08/15/1268805.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/cuihongyu3503319/comments/commentRss/1268805.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/cuihongyu3503319/services/trackbacks/1268805.html</trackback:ping><description><![CDATA[<p>由于NT系统的易维护性，越来越多的中小企业在自己的网站上和内部办公管理系统上采用它，而且很多都是用默认的IIS来做WEB服务器使用。当然不能否认近来威胁NT系统的几个漏洞都是由于IIS配置不当造成的，而且可以预见，未来IIS还会被发现很多新的漏洞和安全问题，但只要我们做好合理的安全配置，还是可以避免很多安全隐患的。本文并没有系统的去讲如何全面安全的配置IIS，我只是从利用SSL加密HTTP通道来讲如果加强IIS安全的。 <br />
　　一、建立SSL安全机制<br />
　　IIS的身份认证除了匿名访问、基本验证和Windows NT请求/响应方式外，还有一种安全性更高的认证，就是通过SSL（Security Socket Layer）安全机制使用数字证书。SSL（加密套接字协议层）位于HTTP层和TCP层之间，建立用户与服务器之间的加密通信，确保所传递信息的安全性。SSL是工作在公共密钥和私人密钥基础上的，任何用户都可以获得公共密钥来加密数据，但解密数据必须要通过相应的私人密钥。使用SSL安全机制时，首先客户端与服务器建立连接，服务器把它的数字证书与公共密钥一并发送给客户端，客户端随机生成会话密钥，用从服务器得到的公共密钥对会话密钥进行加密，并把会话密钥在网络上传递给服务器，而会话密钥只有在服务器端用私人密钥才能解密，这样，客户端和服务器端就建立了一个惟一的安全通道。 <br />
　　建立了SSL安全机制后，只有SSL允许的客户才能与SSL允许的Web站点进行通信，并且在使用URL资源定位器时，输入https:// ，而不是http:// 。 <br />
　　简单的说默认情况下我们所使用的HTTP协议是没有任何加密措施的，所有的消息全部都是以明文形式在网络上传送的，恶意的攻击者可以通过安装监听程序来获得我们和服务器之间的通讯内容。这点危害在一些企业内部网络中尤其比较大，对于使用HUB的企业内网来说简直就是没有任何安全可讲因为任何人都可以在一台电脑上看到其他人在网络中的活动，对于使用交换机来组网的网络来说虽然安全威胁性要小很多，但很多时候还是会有安全突破口，比如没有更改交换机的默认用户和口令，被人上去把自己的网络接口设置为侦听口，依然可以监视整个网络的所有活动。 <br />
　　所以全面加密整个网络传输隧道的确是个很好的安全措施，很可惜的是现在网络上有关于具体给IIS配置SSL的文章并不是很多，我简单的摸索了下把我的经验拿出来给大家分享。<br />
　　二、操作办法<br />
　　以WIN2000服务器版本的来做例子讲解的，我们首先需要在控制面板里的填加删除WINDOWS组件中去安装证书服务，这个服务在默认安装中是没有安装在系统里的，需要安装光盘来安装。 <br />
　　　<img alt="" src="http://windows.chinaitlab.com/imgfiles/2002.8.30.17.29.4.001.jpg" /> <br />
　　　<img alt="" src="http://windows.chinaitlab.com/imgfiles/2002.8.30.17.29.24.002.jpg" /> <br />
　　然后选择独立根CA的安装类型。然后在下一步中给自己的CA起一个名字来完成安装就可以了。 <br />
　　安装完成后，我们就可以启动我们的IIS管理器来申请一个数字证书了，启动INTERNET管理器选择我们需要配置的WEB站点： <br />
　　　<img alt="" src="http://windows.chinaitlab.com/imgfiles/2002.8.30.17.29.40.003.jpg" /><br />
　　选择站点属性里的，目录安全性-安全通信-服务器证书 <br />
　　<img alt="" src="http://windows.chinaitlab.com/imgfiles/2002.8.30.17.29.52.004.jpg" /> </p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<div class="postText">由于我们是第一次配置，所以选择创建一个新的证书。<br />
　　　<img alt="" src="http://windows.chinaitlab.com/imgfiles/2002.8.30.17.33.33.005.jpg" /> <br />
　　用默认的站点名称和加密位长设置就可以了。<br />
　　　<img alt="" src="http://windows.chinaitlab.com/imgfiles/2002.8.30.17.33.52.006.jpg" /> <br />
　　　<img alt="" src="http://windows.chinaitlab.com/imgfiles/2002.8.30.17.34.12.007.jpg" /> <br />
　　　<img alt="" src="http://windows.chinaitlab.com/imgfiles/2002.8.30.17.34.28.008.jpg" /> <br />
　　其实上面的设置都是非常简单的，看看我抓的几个设置画面就可以很简单的设置好的，最好选择一个地方把我们刚才生成的一个请求证书保存起来。 <br />
　　　<img alt="" src="http://windows.chinaitlab.com/imgfiles/2002.8.30.17.34.43.009.jpg" /> <br />
　　完成上面的设置后，我们就要把我们刚刚生成的服务器证书提交给我们刚刚在本地安装的证书服务器。在默认情况下证书服务器完成安装后会在本地的IIS里的WEB服务器里面生成几个虚拟的目录。 <br />
　　我们打开http://localhost/CertSrv/default.asp <br />
　　　<img alt="" src="http://windows.chinaitlab.com/imgfiles/2002.8.30.17.35.1.010.jpg" /> <br />
　　选择申请证书 <br />
　　　<img alt="" src="http://windows.chinaitlab.com/imgfiles/2002.8.30.17.35.15.011.jpg" /> <br />
　　在选择申请类型的时候，选择高级申请。<br />
　　　<img alt="" src="http://windows.chinaitlab.com/imgfiles/2002.8.30.17.35.29.012.jpg" /> <br />
　　选择使用base64的编码方式来提交我们的证书申请。 <br />
　　　<img alt="" src="http://windows.chinaitlab.com/imgfiles/2002.8.30.17.35.51.013.jpg" /> <br />
　　在证书申请的地方把我们刚刚生成的certreq.txt的内容拷备进去，然后选择提交。 <br />
　　　<img alt="" src="http://windows.chinaitlab.com/imgfiles/2002.8.30.17.36.6.014.jpg" /> <br />
　　提交成功以后，会返回一个页面给我们告诉我们证书已经成功提交了，现在是挂起状态就是等待CA中心来颁发这个证书了。 <br />
　　好接下来启动管理工具里的证书颁发机构，在待定申请中找到我们刚刚的申请条目然后点击鼠标右键选择颁发就好了。 <br />
　　<img alt="" src="http://windows.chinaitlab.com/imgfiles/2002.8.30.17.36.18.015.jpg" /> <br />
<div class="postText">颁发成功以后我们在颁发的证书里找到刚才颁发的证书，双击其属性栏目然后在详细信息里选择将证书复制到文件。 <br />
　　　<img alt="" src="http://windows.chinaitlab.com/imgfiles/2002.8.30.17.41.23.016.jpg" /> <br />
　　　<img alt="" src="http://windows.chinaitlab.com/imgfiles/2002.8.30.17.41.40.017.jpg" /> <br />
　　我们需要把证书导出到一个文件，这里我们把证书导出到c:\ sql.cer这个文件里。 <br />
　　重新回到IIS的WEB管理界面里重新选择证书申请，这个时候出来的界面就是挂起的证书请求了。 <br />
　　　<img alt="" src="http://windows.chinaitlab.com/imgfiles/2002.8.30.17.41.57.018.jpg" /> <br />
　　　<img alt="" src="http://windows.chinaitlab.com/imgfiles/2002.8.30.17.42.24.019.jpg" /> <br />
　　选择我们导处的sql.cer这个文件。 <br />
　　　<img alt="" src="http://windows.chinaitlab.com/imgfiles/2002.8.30.17.42.42.020.jpg" /> <br />
　　确定一切信息正确以后，就可以点击下一步确定来完成SSL的安装了。 <br />
　　　<img alt="" src="http://windows.chinaitlab.com/imgfiles/2002.8.30.17.43.7.021.jpg" /> <br />
　　默认安装结束后，SSL并没有启动我们需要自己给我们的站点SSL的加密通道，并且确定HTTPS使用的端口是443 。 <br />
　　　<img alt="" src="http://windows.chinaitlab.com/imgfiles/2002.8.30.17.43.23.022.jpg" /> <br />
　　　<img alt="" src="http://windows.chinaitlab.com/imgfiles/2002.8.30.17.43.43.023.jpg" /> <br />
　　第一次通过HTTPS进入站点的时候，会有一个对话框让我们确认是否同意当前证书，当然是同意啦~ <br />
　　　<img alt="" src="http://windows.chinaitlab.com/imgfiles/2002.8.30.17.44.3.024.jpg" /> <br />
　　好了，这个时候我们看这个网站的时候所有信息在网上就是以加密的方式来传送的了，任何人都无法再轻易了解其中的内容了。 <br />
　　下面给各位看看加密前后加密后的两幅IRIS的监听结果： <br />
　　加密前： <br />
　　　<img alt="" src="http://windows.chinaitlab.com/imgfiles/2002.8.30.17.44.25.025.jpg" /> <br />
　　加密后： <br />
　　<img alt="" src="http://windows.chinaitlab.com/imgfiles/2002.8.30.17.44.53.026.jpg" /><br />
　　加密过的SSL会比普通的没有加密的WEB浏览的时候慢一点，主要是因为加密的隧道额外还要占用一点CPU的资源，对于那些没有任何秘密可言的WEB站点没有需要用加密的SSL通道。只要对于那些重要的目录和站点才有这个必要性。 </div>
</div>
<img src ="http://www.cnblogs.com/cuihongyu3503319/aggbug/1268805.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41952/" target="_blank">[新闻]十月上市 Google手机HTC Dream官方图现</a>]]></description></item><item><title>如何使用 SSL 来确保与 SQL Server 2000 安全通信(转)</title><link>http://www.cnblogs.com/cuihongyu3503319/archive/2008/08/15/1268800.html</link><dc:creator>宏宇</dc:creator><author>宏宇</author><pubDate>Fri, 15 Aug 2008 08:23:00 GMT</pubDate><guid>http://www.cnblogs.com/cuihongyu3503319/archive/2008/08/15/1268800.html</guid><wfw:comment>http://www.cnblogs.com/cuihongyu3503319/comments/1268800.html</wfw:comment><comments>http://www.cnblogs.com/cuihongyu3503319/archive/2008/08/15/1268800.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/cuihongyu3503319/comments/commentRss/1268800.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/cuihongyu3503319/services/trackbacks/1268800.html</trackback:ping><description><![CDATA[摘要: 本页内容 目标 适用范围 如何使用本章内容 摘要 您必须了解的背景知识 安装服务器验证证书 验证证书是否已安装 在客户端安装 CA 颁发的证书 强制所有客户端使用 SSL 允许客户端决定是否使用 SSL 验证通信是否已加密 其他资源 目标本章的目标是： &#8226; 将 SQL Server 2000 配置为要求所有客户端使用 SSL 以确保安全通信。 &#8226; 将 SQL Server &nbsp;&nbsp;<a href='http://www.cnblogs.com/cuihongyu3503319/archive/2008/08/15/1268800.html'>阅读全文</a><img src ="http://www.cnblogs.com/cuihongyu3503319/aggbug/1268800.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41952/" target="_blank">[新闻]十月上市 Google手机HTC Dream官方图现</a>]]></description></item><item><title>关于反射</title><link>http://www.cnblogs.com/cuihongyu3503319/archive/2008/08/15/1268792.html</link><dc:creator>宏宇</dc:creator><author>宏宇</author><pubDate>Fri, 15 Aug 2008 08:19:00 GMT</pubDate><guid>http://www.cnblogs.com/cuihongyu3503319/archive/2008/08/15/1268792.html</guid><wfw:comment>http://www.cnblogs.com/cuihongyu3503319/comments/1268792.html</wfw:comment><comments>http://www.cnblogs.com/cuihongyu3503319/archive/2008/08/15/1268792.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/cuihongyu3503319/comments/commentRss/1268792.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/cuihongyu3503319/services/trackbacks/1268792.html</trackback:ping><description><![CDATA[<p><font face="Verdana">namespace TestSpace<br />
{<br />
&nbsp;&nbsp;&nbsp; delegate object TestDelegate(object value);<br />
&nbsp;&nbsp;&nbsp; public class TestClass<br />
&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public TestClass()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public string GetValue(string value)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return value;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; }<br />
}</font></p>
<p>在有DLL的情况下</p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Assembly a = Assembly.Load("TestSpace");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; object obj = a.CreateInstance(<font face="Verdana">"TestSpace.TestClass"</font>);</font></p>
<p>但是如果没有DLL上面的写法就出错了，本以为反射一定要有DLL不过换了一种方式却可以</p>
<font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Assembly a = Assembly.GetAssembly(Type.GetType("TestSpace.TestClass"));<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; object obj1 = a.CreateInstance("TestSpace.TestClass");</font>
<p>我有些奇怪，不知道什么原因</p>
<img src ="http://www.cnblogs.com/cuihongyu3503319/aggbug/1268792.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41952/" target="_blank">[新闻]十月上市 Google手机HTC Dream官方图现</a>]]></description></item><item><title>IIS 6.0 Web园（Web Garden）</title><link>http://www.cnblogs.com/cuihongyu3503319/archive/2008/08/15/1268757.html</link><dc:creator>宏宇</dc:creator><author>宏宇</author><pubDate>Fri, 15 Aug 2008 07:51:00 GMT</pubDate><guid>http://www.cnblogs.com/cuihongyu3503319/archive/2008/08/15/1268757.html</guid><wfw:comment>http://www.cnblogs.com/cuihongyu3503319/comments/1268757.html</wfw:comment><comments>http://www.cnblogs.com/cuihongyu3503319/archive/2008/08/15/1268757.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/cuihongyu3503319/comments/commentRss/1268757.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/cuihongyu3503319/services/trackbacks/1268757.html</trackback:ping><description><![CDATA[IIS 6.0允许将应用程序池配置成一个Web园（Web Garden）。要理解Web园的概念，可以设想这样一种情形：假设有一个IIS 5.0服务器和三个Web网站，每一个Web网站运行着相同的应用程序，如果IIS 5.0能够自动按照圆形循环的模式将请求依次发送给这些功能上等价、实际上分离的Web网站，将负载分离到三个不同的进程，就可以构成一个小型的Web农场（Web Farm）——这就是Web园。 <br />
<br />
在IIS 6.0的Web园中，我们不必创建额外的Web网站，只要指定用于某个应用程序池的工作进程的数量就可以了。具体的配置步骤是：打开应用程序池的&#8220;属性&#8221;对话框，转到&#8220;性能&#8221;页，在&#8220;Web园&#8221;下面的&#8220;最大工作进程数&#8221;输入框中输入进程数量，如图八。当服务器的负载较小，不需要额外的工作进程时，IIS 6.0在一定的时间后（默认20分钟，可配置）自动缩减实际的工作进程数量；如果负载变大，需要额外的工作进程，IIS 6.0再次增加工作进程数量。这一切操作都自动进行，不需要管理员干预。 <br />
<br />
<br />
<br />
Web园：在Web园中你可以配置此应用程序池所使用的最大工作进程数，默认为1，最大可以设置为4000000； 配置使用多个工作进程可以提高该应用程序池处理请求的性能，但是在设置为使用多个工作进程之前，请考虑以下两点： <br />
<br />
每一个工作进程都会消耗系统资源和CPU占用率；太多的工作进程会导致系统资源和CPU利用率的急剧消耗； <br />
<br />
每一个工作进程都具有自己的状态数据，如果Web应用程序依赖于工作进程保存状态数据，那么可能不支持使用多个工作进程。 <br />
<br />
<br />
问： IIS 6.0 具有一个名为 Web 园的新功能，有了它，可以将应用程序池配置为使用多个工作进程。IIS 何时创建额外的工作进程？在我们实施 Web 园之前，我们应该了解哪些知识？ <br />
<br />
答：在您创建应用程序池时，就会通知 IIS 6 创建一个工作进程，以传送指派给该应用程序池的 Web 站点、文件和文件夹的内容。您可以将应用程序池配置为启动多个，而非一个工作进程，这样可以提高可扩展性。这个功能的名为 Web 园，是小型的&#8220;Web 农场&#8221;。您无需使用多台计算机来传送相同的内容（Web 农场），而是可以使用一台计算机中的多个进程来传送相同的内容。 <br />
<br />
在将 IIS 6 应用程序配置为 Web 园时，您只需在&#8220;应用程序池属性&#8221;的&#8220;性能&#8221;选项卡的&#8220;最大工作进程数&#8221;框中，设置一个大于 1 的工作进程数。如果这个值大于 1，每个请求都将启动一个新的工作进程实例，可启动的最多进程数为您所指定的最大工作进程数。后续的请求将以循环的方式发送至工作进程。 <br />
<br />
Web 园在您的应用程序资源有限的情况下非常有用。例如，如果您到数据库的连接很慢，那么您可以使用多个工作进程来增加用户吞吐量，从而增加到数据库的连接数。 <br />
<br />
尽管在有些情况下使用 Web 园的用处非常大，但是要注意，每个工作进程的会话信息都是唯一的。由于请求以循环的方式路由到应用程序池工作进程，因此 Web 园对于会话信息存储在进程中的应用程序作用可能不大。在少数情况下，让多个工作进程运行同一个应用程序会造成资源竞争。例如，如果所有工作进程都试图将信息记录到日志文件中，或是使用那些不是专用于多个并发访问的资源，那么可能出现资源竞争问题。 <br />
<br />
如果不存在这些问题，那么 Web 园可能正是您所需的功能之一，而且其作用会非常大。</cn>
<img src ="http://www.cnblogs.com/cuihongyu3503319/aggbug/1268757.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41952/" target="_blank">[新闻]十月上市 Google手机HTC Dream官方图现</a>]]></description></item><item><title>动态的委托方法</title><link>http://www.cnblogs.com/cuihongyu3503319/archive/2008/08/15/1268739.html</link><dc:creator>宏宇</dc:creator><author>宏宇</author><pubDate>Fri, 15 Aug 2008 07:28:00 GMT</pubDate><guid>http://www.cnblogs.com/cuihongyu3503319/archive/2008/08/15/1268739.html</guid><wfw:comment>http://www.cnblogs.com/cuihongyu3503319/comments/1268739.html</wfw:comment><comments>http://www.cnblogs.com/cuihongyu3503319/archive/2008/08/15/1268739.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/cuihongyu3503319/comments/commentRss/1268739.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/cuihongyu3503319/services/trackbacks/1268739.html</trackback:ping><description><![CDATA[<p>委托是C#中实现事件的基础，有时候不可避免的要动态的创建委托，实际上委托也是一种类型：System.Delegate，所有的委托都是从这个类派生的<br />
System.Delegate提供了一些静态方法来动态创建一个委托，比如一个委托：<br />
<br />
namespace TestSpace {<br />
&nbsp;&nbsp; <span style="color: #008080">delegate</span> string TestDelegate(string value);<br />
&nbsp;&nbsp; public class TestClass {<br />
&nbsp;public TestClass() {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public void <span style="color: #008080">GetValue</span>(string value) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return value;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; }<br />
}</p>
<p><br />
使用示例：<br />
<span style="color: #008080">TestClass obj = new TestClass();</span><br />
&nbsp;&nbsp;<br />
//获取类型，实际上这里也可以直接用typeof来获取类型<br />
Type t = Type.GetType(&#8220;<span style="color: #008080">TestSpace.TestClass</span>&#8221;);<br />
//创建代理，传入类型、创建代理的对象以及方法名称<br />
TestDelegate method = (TestDelegate)<span style="color: #008080">Delegate</span>.CreateDelegate(<font face="Verdana">typeof(<span style="color: #008080">Delegate</span>)</font>,obj,&#8221;<span style="color: #008080">GetValue</span>&#8221;); </p>
<p>String returnValue = method(&#8220;hello&#8221;);</p>
<p>&nbsp;</p>
<p><span style="color: red">如果想委托页面方法：</span></p>
<p>&nbsp;</p>
<p><span style="color: red">&nbsp;&nbsp;&nbsp; protected void Page_Load(object sender, EventArgs e)<br />
&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; EventHandler method = (EventHandler)EventHandler.CreateDelegate(typeof(EventHandler), this, "hello");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; EventArgs e1 = new EventArgs();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; method(null, e1);</span></p>
<p><span style="color: red">&nbsp;&nbsp;&nbsp; }</span></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><span style="color: red">&nbsp;&nbsp;&nbsp; public void hello(object sender, EventArgs e)<br />
&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; }</span></p>
<p>&nbsp;</p>
<img src ="http://www.cnblogs.com/cuihongyu3503319/aggbug/1268739.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41952/" target="_blank">[新闻]十月上市 Google手机HTC Dream官方图现</a>]]></description></item><item><title>IIS安装时，安装程序无法复制一个或多个文件。特定错误码是0x4b8</title><link>http://www.cnblogs.com/cuihongyu3503319/archive/2008/08/14/1267699.html</link><dc:creator>宏宇</dc:creator><author>宏宇</author><pubDate>Thu, 14 Aug 2008 03:56:00 GMT</pubDate><guid>http://www.cnblogs.com/cuihongyu3503319/archive/2008/08/14/1267699.html</guid><wfw:comment>http://www.cnblogs.com/cuihongyu3503319/comments/1267699.html</wfw:comment><comments>http://www.cnblogs.com/cuihongyu3503319/archive/2008/08/14/1267699.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/cuihongyu3503319/comments/commentRss/1267699.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/cuihongyu3503319/services/trackbacks/1267699.html</trackback:ping><description><![CDATA[<p>故障现象<br />
<br />
安装IIS的时候一直提示如下错误，IIS无法正常安装。提示：安装程序无法复制一个或多个文件。<br />
<br />
特定错误码是 0x4b8。按&#8220;确定&#8221;以继续；或者按&#8220;取消&#8221;，停止安装并且再试一次。如果继续，组<br />
<br />
件可能无法正常运行。<br />
<br />
解决方案<br />
<br />
(1) 开始 &gt; 运行 &gt; 输入 CMD &gt;再输入以下命令：<br />
esentutl /p %windir%/security/database/secedit.sdb，<br />
然后再安装一次，就搞定了。 </p>
<p style="color: red">我在2003里装证书服务时候也遇到了这个问题,看来安装一些相关服务都会遇到这个问题</p>
<img src ="http://www.cnblogs.com/cuihongyu3503319/aggbug/1267699.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41951/" target="_blank">[新闻]2008年8月29日IT博客精选</a>]]></description></item><item><title>ocx</title><link>http://www.cnblogs.com/cuihongyu3503319/archive/2008/08/12/1266135.html</link><dc:creator>宏宇</dc:creator><author>宏宇</author><pubDate>Tue, 12 Aug 2008 08:39:00 GMT</pubDate><guid>http://www.cnblogs.com/cuihongyu3503319/archive/2008/08/12/1266135.html</guid><wfw:comment>http://www.cnblogs.com/cuihongyu3503319/comments/1266135.html</wfw:comment><comments>http://www.cnblogs.com/cuihongyu3503319/archive/2008/08/12/1266135.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/cuihongyu3503319/comments/commentRss/1266135.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/cuihongyu3503319/services/trackbacks/1266135.html</trackback:ping><description><![CDATA[<p><span style="color: red">最近在做一个加密activex控件和https证书配合</span></p>
<p>.ocx是ocx控件的扩展名,下来说说什么是ocx控件! <br />
说说什么是OCX控件？ <br />
如果你用过Visual Basic或者Delphi一类的可视化编程工具，那么对控件这个概念一定不会陌生，就是那些工具条上的小按钮，如EditBox，Grid，ImageBox，Timer等等。每个控件都有自己的事件、方法和属性。使用了控件的编程非常容易。首先，在程序的设计阶段可以设置一些属性，如大小，位置，标题(caption)等等；在程序运行阶段，可以更改这些属性，还可以针对不同的事件，调用不同的方法来实现对该控件的控制。控件就好像一块块的积木，程序要做的事只是将这些积木搭起来。控件的最大好处是可以重复使用，甚至可以在不同的编程语言之间使用，例如你可以在VB中嵌入用VC开发的控件。 <br />
控件的本质是微软公司的对象链接和嵌入(OLE)标准。由于它充分利用了面向对象的优点，使得程序效率得到了很大的提高，从而得到了广泛的应用。国外有很多公司就是专门制作各种各样控件的。控件的最早形式是以.VBX的格式出现的，后来变成了.OCX。由于Internet的广泛流行，微软公司推出了ActiveX技术，就是从OLE发展起来的，加入了WWW上的功能。所以目前最流行的是ActiveX控件。<br />
<br />
ActiveX控件.ActiveX控件是可重用的软件组件。使用它可以很快地在网址、台式应用程序、以及开发工具中加入特殊的功能。ActiveX控件的使用者可以无需知道这些组件是如何开发的，便可以完成网页或应用程序的设计。 <br />
<br />
</p>
<img src ="http://www.cnblogs.com/cuihongyu3503319/aggbug/1266135.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41950/" target="_blank">[新闻]微软在华布局农村手机 定位小城镇和打工者</a>]]></description></item><item><title>C#中动态执行C#脚本</title><link>http://www.cnblogs.com/cuihongyu3503319/archive/2008/08/06/1262068.html</link><dc:creator>宏宇</dc:creator><author>宏宇</author><pubDate>Wed, 06 Aug 2008 06:58:00 GMT</pubDate><guid>http://www.cnblogs.com/cuihongyu3503319/archive/2008/08/06/1262068.html</guid><wfw:comment>http://www.cnblogs.com/cuihongyu3503319/comments/1262068.html</wfw:comment><comments>http://www.cnblogs.com/cuihongyu3503319/archive/2008/08/06/1262068.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/cuihongyu3503319/comments/commentRss/1262068.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/cuihongyu3503319/services/trackbacks/1262068.html</trackback:ping><description><![CDATA[<div>
<p align="left"><strong><span style="font-size: 10pt; font-family: 'Courier New'" xml:lang="EN-US">using</span></strong> <span style="font-size: 10pt; font-family: 'Courier New'" xml:lang="EN-US">Microsoft<span style="color: blue">.</span>CSharp; </span></p>
<p align="left"><strong><span style="font-size: 10pt; font-family: 'Courier New'" xml:lang="EN-US">using</span></strong> <span style="font-size: 10pt; font-family: 'Courier New'" xml:lang="EN-US">System<span style="color: blue">.</span>CodeDom<span style="color: blue">.</span>Compiler;</span></p>
<p align="left"><strong><span style="font-size: 10pt; font-family: 'Courier New'" xml:lang="EN-US">using</span></strong> <span style="font-size: 10pt; font-family: 'Courier New'" xml:lang="EN-US">System<span style="color: blue">.</span>Reflection;</span></p>
<p align="left"><span style="font-size: 10pt; font-family: 'Courier New'" xml:lang="EN-US">&nbsp;<wbr></span></p>
<p align="left"><strong><span style="font-size: 10pt; font-family: 'Courier New'" xml:lang="EN-US">private void</span></strong> <span style="font-size: 10pt; font-family: 'Courier New'" xml:lang="EN-US">button1_Click(<strong>object</strong> sender<strong>,</strong> <span style="color: teal">EventArgs</span> e)</span></p>
<p align="left"><span style="font-size: 10pt; font-family: 'Courier New'" xml:lang="EN-US">{</span></p>
<p align="left"><span style="font-size: 10pt; font-family: 'Courier New'" xml:lang="EN-US">&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> <span style="color: teal">ICodeCompiler</span> vCodeCompiler <span style="color: blue">=</span> <strong>new</strong> <span style="color: teal">CSharpCodeProvider</span>()<span style="color: blue">.</span>CreateCompiler();</span></p>
<p align="left"><span style="font-size: 10pt; font-family: 'Courier New'" xml:lang="EN-US">&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> <span style="color: teal">CompilerParameters</span> vCompilerParameters <span style="color: blue">=</span> <strong>new</strong> <span style="color: teal">CompilerParameters</span>();</span></p>
<p align="left"><span style="font-size: 10pt; font-family: 'Courier New'" xml:lang="EN-US">&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> vCompilerParameters<span style="color: blue">.</span>GenerateExecutable <span style="color: blue">=</span> <strong>false</strong>;</span></p>
<p align="left"><span style="font-size: 10pt; font-family: 'Courier New'" xml:lang="EN-US">&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> vCompilerParameters<span style="color: blue">.</span>GenerateInMemory <span style="color: blue">=</span> <strong>true</strong>;</span></p>
<p align="left"><span style="font-size: 10pt; font-family: 'Courier New'" xml:lang="EN-US">&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> <strong>string</strong> vSource <span style="color: blue">=</span></span></p>
<p align="left"><span style="font-size: 10pt; font-family: 'Courier New'" xml:lang="EN-US">&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> <span style="color: maroon">"public class Temp"n"</span> <span style="color: blue">+</span></span></p>
<p align="left"><span style="font-size: 10pt; font-family: 'Courier New'" xml:lang="EN-US">&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> <span style="color: maroon">"{"n"</span> <span style="color: blue">+</span></span></p>
<p align="left"><span style="font-size: 10pt; font-family: 'Courier New'" xml:lang="EN-US">&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> <span style="color: maroon">"&nbsp;<wbr>&nbsp;<wbr> public double Test(double A, double B)"n"</span> <span style="color: blue">+</span></span></p>
<p align="left"><span style="font-size: 10pt; font-family: 'Courier New'" xml:lang="EN-US">&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> <span style="color: maroon">"&nbsp;<wbr>&nbsp;<wbr> {"n"</span> <span style="color: blue">+</span></span></p>
<p align="left"><span style="font-size: 10pt; font-family: 'Courier New'" xml:lang="EN-US">&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> <span style="color: maroon">"&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> return A / B;"n"</span> <span style="color: blue">+</span></span></p>
<p align="left"><span style="font-size: 10pt; font-family: 'Courier New'" xml:lang="EN-US">&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> <span style="color: maroon">"&nbsp;<wbr>&nbsp;<wbr> }"n"</span> <span style="color: blue">+</span></span></p>
<p align="left"><span style="font-size: 10pt; font-family: 'Courier New'" xml:lang="EN-US">&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> <span style="color: maroon">"}"n"</span>;</span></p>
<p align="left"><span style="font-size: 10pt; font-family: 'Courier New'" xml:lang="EN-US">&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> <span style="color: teal">CompilerResults</span> vCompilerResults <span style="color: blue">=</span></span></p>
<p align="left"><span style="font-size: 10pt; font-family: 'Courier New'" xml:lang="EN-US">&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> vCodeCompiler<span style="color: blue">.</span>CompileAssemblyFromSourc<wbr>e(vCompilerParameters, vSource);</span></p>
<p align="left"><span style="font-size: 10pt; font-family: 'Courier New'" xml:lang="EN-US">&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> <span style="color: teal">Assembly</span> vAssembly <span style="color: blue">=</span> vCompilerResults<span style="color: blue">.</span>CompiledAssembly;</span></p>
<p align="left"><span style="font-size: 10pt; font-family: 'Courier New'" xml:lang="EN-US">&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> <strong>object</strong> vTemp <span style="color: blue">=</span> vAssembly<span style="color: blue">.</span>CreateInstance(<span style="color: maroon">"Temp"</span>);</span></p>
<p align="left"><span style="font-size: 10pt; font-family: 'Courier New'" xml:lang="EN-US">&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> <span style="color: teal">MethodInfo</span> vTest <span style="color: blue">=</span> vTemp<span style="color: blue">.</span>GetType()<span style="color: blue">.</span>GetMethod(<span style="color: maroon">"Test"</span>);</span></p>
<p align="left"><span style="font-size: 10pt; font-family: 'Courier New'" xml:lang="EN-US">&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> <strong>for</strong> (<strong>int</strong> i <span style="color: blue">=</span> <strong><span style="color: red">1</span></strong>; i <span style="color: blue">&lt;</span> <strong><span style="color: red">100</span></strong>; i<span style="color: blue">++</span>)</span></p>
<p align="left"><span style="font-size: 10pt; font-family: 'Courier New'" xml:lang="EN-US">&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> {</span></p>
<p align="left"><span style="font-size: 10pt; font-family: 'Courier New'" xml:lang="EN-US">&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> <strong>object</strong>[] vParams <span style="color: blue">=</span> { <strong><span style="color: red">1</span></strong>, i };</span></p>
<p align="left"><span style="font-size: 10pt; font-family: 'Courier New'" xml:lang="EN-US">&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> <strong>object</strong> vDouble <span style="color: blue">=</span> vTest<span style="color: blue">.</span>Invoke(vTemp, vParams);</span></p>
<p align="left"><span style="font-size: 10pt; font-family: 'Courier New'" xml:lang="EN-US">&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> textBox1<span style="color: blue">.</span>AppendText(vDouble<span style="color: blue">.</span>ToString() <span style="color: blue">+</span> <span style="color: maroon">""r"n"</span>);</span></p>
<p align="left"><span style="font-size: 10pt; font-family: 'Courier New'" xml:lang="EN-US">&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> }</span></p>
<p align="left"><span style="font-size: 10pt; font-family: 'Courier New'" xml:lang="EN-US">}</span></p>
<p><span xml:lang="EN-US">&nbsp;<wbr></span></p>
</div>
<img src ="http://www.cnblogs.com/cuihongyu3503319/aggbug/1262068.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41949/" target="_blank">[新闻]暴雪确认《星际争霸2》将不会在08年内发售</a>]]></description></item></channel></rss>