WebDev.WebServer是.Net内置的轻量级Web服务器,是Asp.net开发人员的利器,因为可以避免使用IIS。通常我们要启动WebDev.WebServer是通过VS开发环境.执行文件为:WebDev.WebServer.EXE 在目录:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727 中,这个8.0版本的,是.net framework2.0自带的。如果安装了Vs2008就会在C:\Program Files\Common Files\Microsoft Shared\DevServer\9.0目录中找到9.0版本的WebDev.WebSever.exe而且还是中文版的。

查看命令的帮助通过 WebDev.WebServer /? 即可看到详细的帮助。

命令格式:WebDev.WebServer [/port:<服务端口>] /path:<物理路径> [/vpath:<虚拟路径>]

命令参数:<服务端口> - 可选,HTTP服务端口号,默认为80,如是不输入该参数会默认为80端口,若此时80端口被占用,则直接报错。

命令参数:<物理路径> - Web应用程序所处的文件系统根目录

命令参数:<虚拟路径> - 可选,Web应用程序的URL虚拟根目录,默认为"/"

应用示例:WebDev.WebServer.exe /port:8088 /path: "c:\inetpub\wwwroot\MyApp" /vpath: "/MyApp"

应用示例:浏览器中,使用 http://localhost:8088/MyApp 进行浏览

对于每次不想使用命令行的朋友,我在这里送上一个小工具:

 

未命名

这里我附上源码及程序下载 download EmbedWebServer.rar

这个只是一小程序,没有多大技术含量 ;-),但有时我们写一些BS程序的demo,就可以直接调用 Embed Web Server,无需部署,会省很多工夫.

posted @ 2009-05-25 23:38 少雄 阅读(347) | 评论 (4)编辑

亲爱的各位博友,我比较忙在园子里的发的文章较少,(俺属于潜水型,等有时间我一定把一些文章及经验整理出来供大家分享)但我也是博客园忠实的老用户, 一直关注博客园及各位兄弟的发展。博客园里高手如云,本人也非常乐意与大家交流学习 msn:zhaozhaoxiong@hotmail.com。非常感谢dudu为程序员提供一个友好开放的平台。在北京工作了一阵时间,然后回广州创业,经过三个月的精心酝酿,www.zhixiaoxie.cn终于开张,希望各位园友多多支持。也希望dudu支持,*_*

 

 

Keywords:  皮鞋 鞋业 特价鞋 adidas鞋 深圳鞋 直销厂家 购买鞋 adidas nike鞋 直销价 篮球鞋 网上鞋 耐克 耐克鞋 购物鞋 鞋广告 鞋类 休闲鞋 李宁鞋 男鞋 鞋材 足球鞋 复古鞋 广州鞋 板鞋 鞋店 乔丹鞋 波鞋 劳保鞋 旅游鞋 代理鞋 内增高鞋 杭州鞋 舞蹈鞋 鞋跟 棉鞋 布鞋 鞋楦 鞋样 平底鞋 鞋袜 双星鞋 鞋垫 阿迪鞋 帆布鞋 滑板鞋 耐克鞋 鞋代理 鞋包 韩国鞋 名牌鞋 户外鞋 暴走鞋 福建鞋 鞋服装 香港鞋 商场鞋 商城鞋 广东鞋 增高鞋 鞋垫 鞋批发 鞋子 shoes 童鞋 运动鞋 女鞋

posted @ 2008-10-08 17:07 少雄 阅读(633) | 评论 (8)编辑

     一些无聊的病毒喜欢把自身的文件改为隐藏,让你看不到。为了达到隐藏的目的,它有时把注册表下的HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL]
下的CheckedValue值改成无效的字符(这时你把它的值改成1或0,都没有用)或把这个键值删除,你最好的办法就是重新建立一个新的键值:
方法如下,打开“记事本”,复制如下内容:

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL]
"CheckedValue"=dword:00000001

保存文件名:“showall.REG”,(确保在“文件夹选项”中去掉“隐藏已知文件类型的扩展名”),双击运行此文件,再重新到“文件夹选项”中设置显示隐藏文件。
posted @ 2007-07-03 13:56 少雄 阅读(113) | 评论 (0)编辑
    哈,我的个人网站开通了!奇客-qkesoft,欢迎大家访问www.qkesoft.com!不过以后里面的内容我可能会与博客园里的同步更新!

posted @ 2007-06-26 14:26 少雄 阅读(37) | 评论 (1)编辑
         最近好多人的电脑都被一种u.bat的一种脚本病毒所感染,俺的也中了。解决方法如,在C:\与C:\windows\的目录下加入8Bye.txt的文本文件(不需写入内容)。这时u.vbe会自动删除。但是这时因为找不到此文件会打不开所有的盘(除系统C盘)。你打改一下文件夹的属性,显示所有的隐藏的文件夹,删除每个盘符下的autorun.inf,和xxx.sk文件(这时你可以用这种这种方法打开硬盘,在地址上输入“盘符:”,回车即可打开,例:"D:"),C盘下可能还会有u.bat文件(一并删除)。运行注册表,输入u.vbe查找,把相关键值清除。这时你的盘还是打不开,这时你还是打不开你的硬盘,别急。你打开任务管理器,终止你的explorer进程。这时你的所有桌面图标都会看不见了,然后又新建任务 explorer.exe,回车,这时又可以看到你的所有桌面图标。
就这样一切搞定了。
         不过你是高手的话,可以自已写个批处理文件,把那些文件批处理掉就OK了。
查看源地址:http://www.qkesoft.com/?p=5
posted @ 2007-06-02 15:49 少雄 阅读(1180) | 评论 (3)编辑
防盗版微软KB905474补丁的卸载方法

1在开始---运行---REGEDIT    注册表项里
HKEY_LOCAL_MACHINE\SOFTWARE\microsoft\WindowsNT\CurrentVersion\Winlogon\Notify\WgaLogon,删除WgaLogon这个文件,重新启动,wgatray.exe就不会自动启动了,
2再把x:\windows\system32\wgatray.exe删除,
 关闭自动升级XP,改手动,记住不要再更新这个微软KB905474补丁了。
查看源地址:http://www.qkesoft.com/?p=6
posted @ 2007-05-06 11:30 少雄 阅读(952) | 评论 (1)编辑
/*一个Ajax类*/
//创建一个XMLHttpRequest对象实例
var Ajax = function()
{
    this.pool = new Array();//声明一个二维数组,做为XMLHttpRequest对象池
    this.createXMLHttpRequest = function()
    {
        var objXMLHttp;
        if(window.XMLHttpRequest)//火狐
            objXMLHttp = new XMLHttpRequest();
        else
        {//IE
            var MSXML = ['MSXML2.XMLHTTP.5.0','MSXML2.XMLHTTP.4.0','MSXML2.XMLHTTP.3.0','MSXML2.XMLHTTP','Microsoft.XMLHTTP'];
            for(var n = 0; n <MSXML.length;n++)
            {
                try
                {
                    objXMLHttp = new ActiveXObject(MSXML[n]);
                    break;
                }
                catch(e)
                {
                }
            }
        }
        return objXMLHttp;
    }
    this.getXMLHttpRequest = function(mark /*XMLHttpRequest标识*/)
    {
        if(mark != null)
        {
            for(var i =0;i< this.pool.length; i++)
            {
                if(this.pool[i]["mark"] == mark)
                {//判断标识
                    if(this.pool["obj"].readState == 0 || this.pool[a]["obj"].readState == 4)
                    {//判断XMLHttpRequest的当前状态,0对象已建立,但末初始化,4完成
                        return this.pool[a]["obj"];
                    }
                    else
                    {
                        return "wait";
                    }
                }
            }
            //没有相应mark标识的XMLHttpRequest对象,创建一个新的对象
            this.pool[this.pool.length] = new Array();
            this.pool[this.pool.length-1]["obj"] = this.createXMLHttpRequest();
            this.pool[this.pool.length -1]["mark"] = mark;
            return this.pool[this.pool.length -1]["obj"];
        }
        for (var i = 0; i < this.pool.length; i++)
           {//mark 为NULL
              if(this.pool[i]["obj"].readyState == 0 || this.pool[i]["obj"].readyState == 4)
              {
                return this.pool[i]["obj"];
              }
           }
 
       this.pool[this.pool.length] = new Array();
       this.pool[this.pool.length - 1]["obj"] = this.createXMLHttp();
       this.pool[this.pool.length - 1]["mark"] = "";
       return this.pool[this.pool.length - 1]["obj"];
    }
    this.sendReq = function(method,url,data,callback,mark,callbackError,extra)
    {//成功返回调用callback(ojbXMLHttp),失败返回调用callbackError(objXMLHttp,[extra])
        var objXMLHttp = getXMLHttpRequest(mark);
        if(typeof(objXMLHttp)!= "object")
            return false;
        with(objXMLHttp)
        {
            try//加入随机数防止缓存
            {
                if(url.indexOf("?")>0)
                {
                    url += "&randnum=" + Math.random();
                }
                else
                {
                    url += "?randnum=" + Math.random();
                }
                open(method,url,true);//true异步,false同步
                setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8');
                //设定请求编码方式
                setRequestHeader("If-Modified-Since",0);//no cache
                if(data != null)
                    send(data);
                onreadstatechange = function()
                {
                    if(readyState == 4 && (objXMLHttp.status == 200 || objXMLHttp.status == 304))
                    {//status:304,Not Modified 200,OK
                        callback(objXMLHttp);
                    }
                    else
                    {//失败
                        if(typeof(callbackError) == "function")
                        {
                            if(extra != null)
                                callbackError(objXMLHttp,extra);
                            else
                                callbackError(objXMLHttp);
                        }
                    }
                }
           
            }
            catch(e)
            {
                alert(e);
            }
        }
    }
}
                   
posted @ 2007-04-21 21:36 少雄 阅读(128) | 评论 (0)编辑

javascript操作cookie

问题:
    使得在访问页面的时候能够沿用上次的设置,或者在不同的页面间共享数据。比如用户在访问网站的时候设置了页面字体的大小,那么会希望下次访问的时候仍然能使用同样的设置进行浏览,而不用重复设置。
解决方案:
    在用户浏览页面并进行设置时,将这些设置保存在cookie中,下次访问的时候读取cookie中的设置。
    参考下面的脚本:

    // utility function to retrieve an expiration data in proper format;
    function getExpDate(days, hours, minutes)
    {
        
var expDate = new Date();
        
if(typeof(days) == "number" && typeof(hours) == "number" && typeof(hours) == "number")
        {
            expDate.setDate(expDate.getDate() 
+ parseInt(days));
            expDate.setHours(expDate.getHours() 
+ parseInt(hours));
            expDate.setMinutes(expDate.getMinutes() 
+ parseInt(minutes));
            
return expDate.toGMTString();
        }
    }

    
//utility function called by getCookie()
    function getCookieVal(offset)
    {
        
var endstr = document.cookie.indexOf(";", offset);
        
if(endstr == -1)
        {
            endstr 
= document.cookie.length;
        }
        
return unescape(document.cookie.substring(offset, endstr));
    }

    
// primary function to retrieve cookie by name
    function getCookie(name)
    {
        
var arg = name + "=";
        
var alen = arg.length;
        
var clen = document.cookie.length;
        
var i = 0;
        
while(i < clen)
        {
            
var j = i + alen;
            
if (document.cookie.substring(i, j) == arg)
            {
                
return getCookieVal(j);
            }
            i 
= document.cookie.indexOf(" ", i) + 1;
            
if(i == 0break;
        }
        
return;
    }

    
// store cookie value with optional details as needed
    function setCookie(name, value, expires, path, domain, secure)
    {
        document.cookie 
= name + "=" + escape(value) +
            ((expires) 
? "; expires=" + expires : ""+
            ((path) 
? "; path=" + path : ""+
            ((domain) 
? "; domain=" + domain : ""+
            ((secure) 
? "; secure" : "");
    }

    
// remove the cookie by setting ancient expiration date
    function deleteCookie(name,path,domain)
    {
        
if(getCookie(name))
        {
            document.cookie 
= name + "=" +
                ((path) 
? "; path=" + path : ""+
                ((domain) 
? "; domain=" + domain : ""+
                
"; expires=Thu, 01-Jan-70 00:00:01 GMT";
        }
    }

    使用getCookie(name)函数来读取cookie中保存的值,参数name为cookie项的名称。如果该cookie项不存在则返回一个空字符串。
    使用setCookie()函数来保存cookie项的值,其中第一、二两个参数分别为cookie项的名称和值。如果想为其设置一个过期时间,那么就需要设置第三个参数,这里需要通过getExpDate()获得一个正确格式的参数。
    最后,使用deleteCookie()来删除一个已存在的cookie项,实际上是通过让该项过期。
    cookie将数据保存在客户端。页面的脚本只能读取所在域和服务器的cookie值,如果域内有多个服务器,那么需要设置第五个参数,以指定服务器。浏 览器的容量一般限定为每服务器20个name/value对,每个cookie项不超过4000个字符,更现实点,单个cookie项应少于2000字 符,也就是说不要用cookie在客户端保存大容量数据。
    不同的浏览器保存cookie的方式也有所不同。IE为每个域的cookie建立一个文本文件,而Netscape则将所有的cookie存储在同一个文本文件中。
    注意:cookie存放在客户端,所以会受到浏览器设置的影响,比如用户可能会禁用cookie。要检测浏览器是否支持cookie,使用属性navigator.cookieEnabled来判断。


    参考: (Oreilly) Java Script And Dhtml Cookbook.chm
http://www.cnblogs.com/anderslly/archive/2006/10/11/javascriptcookie.html
posted @ 2007-03-17 09:57 少雄 阅读(1121) | 评论 (0)编辑

索引

使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构,例如 employee 表的姓(lname)列。如果要按姓查找特定职员,与必须搜索表中的所有行相比,索引会帮助您更快地获得该信息。

索引提供指向存储在表的指定列中的数据值的指针,然后根据您指定的排序顺序对这些指针排序。数据库使用索引的方式与您使用书籍中的索引的方式很相似:它搜索索引以找到特定值,然后顺指针找到包含该值的行。

在数据库关系图中,您可以在选定表的“索引/键”属性页中创建、编辑或删除每个索引类型。当保存索引所附加到的表,或保存该表所在的关系图时,索引将保存在数据库中。有关详细信息,请参见创建索引。

注意;并非所有的数据库都以相同的方式使用索引。有关更多信息,请参见数据库服务器注意事项,或者查阅数据库文档。

作为通用规则,只有当经常查询索引列中的数据时,才需要在表上创建索引。索引占用磁盘空间,并且降低添加、删除和更新行的速度。在多数情况下,索引用于数据检索的速度优势大大超过它的。

索引列

可以基于数据库表中的单列或多列创建索引。多列索引使您可以区分其中一列可能有相同值的行。

如果经常同时搜索两列或多列或按两列或多列排序时,索引也很有帮助。例如,如果经常在同一查询中为姓和名两列设置判据,那么在这两列上创建多列索引将很有意义。

确定索引的有效性:

  • 检查查询的 WHERE 和 JOIN 子句。在任一子句中包括的每一列都是索引可以选择的对象。
  • 对新索引进行试验以检查它对运行查询性能的影响。
  • 考虑已在表上创建的索引数量。最好避免在单个表上有很多索引。
  • 检查已在表上创建的索引的定义。最好避免包含共享列的重叠索引。
  • 检查某列中唯一数据值的数量,并将该数量与表中的行数进行比较。比较的结果就是该列的可选择性,这有助于确定该列是否适合建立索引,如果适合,确定索引的类型。
索引类型

根据数据库的功能,可以在数据库设计器中创建三种索引:唯一索引、主键索引和聚集索引。有关数据库所支持的索引功能的详细信息,请参见数据库文档。

提示:尽管唯一索引有助于定位信息,但为获得最佳性能结果,建议改用主键或唯一约束。

唯一索引

唯一索引是不允许其中任何两行具有相同索引值的索引。

当现有数据中存在重复的键值时,大多数数据库不允许将新创建的唯一索引与表一起保存。数据库还可能防止添加将在表中创建重复键值的新数据。例如,如果在 employee 表中职员的姓 (lname) 上创建了唯一索引,则任何两个员工都不能同姓。

主键索引

数据库表经常有一列或列组合,其值唯一标识表中的每一行。该列称为表的主键。

在数据库关系图中为表定义主键将自动创建主键索引,主键索引是唯一索引的特定类型。该索引要求主键中的每个值都唯一。当在查询中使用主键索引时,它还允许对数据的快速访问。

聚集索引

在聚集索引中,表中行的物理顺序与键值的逻辑(索引)顺序相同。一个表只能包含一个聚集索引。

如果某索引不是聚集索引,则表中行的物理顺序与键值的逻辑顺序不匹配。与非聚集索引相比,聚集索引通常提供更快的数据访问速度。

posted @ 2007-03-17 09:20 少雄 阅读(917) | 评论 (0)编辑

要想操作使用DOS,知道一些常用命令是非常重要的。以下是一些命令的用法。

文件名是由文件路径和文件名称合起来的,如C:\DOS\COMMAND.COM。

DIR 显示文件和文件夹(目录)。
用法:DIR [文件名] [选项]

它有很多选项,如/A表示显示所有文件(即包括带隐含和系统属性的文件),/S表示也显示子文件夹中的文件,/P表示分屏显示,/B表示只显示文件名,等等。
如 DIR A*.EXE /A /P
此命令分屏显示当前文件夹下所有以A开头后缀为EXE的文件(夹)。

CD CHDIR 改变当前文件夹。
用法:CD [文件夹名]
若无文件夹名则显示当前路径。

MD MKDIR 建立文件夹。
用法:MD 文件夹名

RD RMDIR 删除文件夹。
用法:RD 文件夹名
注意:此文件夹必须是空的。

DEL ERASE 删除文件。
用法:DEL/ERASE 文件名

COPY 拷贝文件。
用法: COPY 文件名1 [文件名2] [选项]
如 COPY /B A+B C
此命令将两个二进制文件A和B合为一个文件C。

TYPE 显示文件内容。
用法:TYPE 文件名

REN RENAME 改变文件名和文件夹(目录)名。
用法:REN 文件(夹)名1 文件(夹)名2

EDIT 编辑文件,在MS-DOS 7.x中还可以编辑二进制文件和多个文件。
用法:EDIT [文件名] [选项]
如 EDIT /70 C:\COMMAND.COM
此命令以二进制方式编辑C:\COMMAND.COM文件。

FORMAT 格式化磁盘。
用法:FORMAT 驱动器 [选项]

它的选项很多,如/Q是快速格式化,/U表示无条件格式化(即无法使用UNFORMAT等命令恢复),/V指定磁盘的卷标名,等等。它还有许多未公开参数。

MEM 显示内存状态。
用法:MEM [选项]

它的选项也有不少,如/C可列出所有程序的内存占用,/D是显示驻留内存的程序及设备驱动程序的状态等详细信息,/F显示空闲的内存总量,/M显示内存中的模块信息,/P则是分屏显示。还有隐藏的/A选项,可以显示HMA信息。

MOVE 移动文件或文件夹,还可以更改文件或文件夹的名称。
用法:MOVE 文件[夹]1 文件[夹]2
如 MOVE C:\*.EXE D:
此命令 可以将C盘根文件夹下所有扩展名为EXE的文件移到D盘上。

XCOPY 复制文件或文件夹。
用法:XCOPY 文件[夹]名1 [文件[夹]名2] [选项]

它的选项非常多,如/S可拷贝整个文件夹(包括子文件夹)中的文件,/E指定包括空文件夹,/V表示复制完后检验复制出的文件的正确性,/Y表示确认,等等。

CLS 清除屏幕。
用法:CLS

SYS 传导系统,即将系统文件(如IO.SYS等)从一处传输到指定的驱动器中。
用法:SYS 文件夹名 [驱动器]
如 SYS C:\DOS A:
此命令即可将位于C:\DOS文件夹下的系统文件传输到A盘中。

DATE 显示或设置日期。
用法:DATE [日期]

TIME 显示或设置时间。
用法:TIME [时间]

DOS还自带一些其它的命令,如SORT(排序),FIND(寻找字符)等。

除DOS自带的命令以外,还有很多其它的增强命令也非常实用,它们可以大大增强DOS的功能。这些软件中有很多可以在“DOS软件”中下载。

posted @ 2007-03-14 12:40 少雄 阅读(57) | 评论 (0)编辑