<?xml version="1.0" encoding="gb2312"?>
<rss version="2.0">
<channel>

	<title>web服务器</title>
	<link>http://www.xiang6963.cn/bbs/ShowForum.asp?ForumID=22</link>

	<image>
		<title>飘凌大杂烩</title> 
		<url>http://www.xiang6963.cn/bbs/images/logo.gif</url>
		<link>http://www.xiang6963.cn/bbs/Default.asp</link>
	</image>


	<item>
		<title>数据库发布与订阅</title>
		<link>http://www.xiang6963.cn/bbs/ShowPost.asp?ThreadID=823</link><category>数据库</category><author>piaoling</author><pubDate>2020/6/9 16:35:35</pubDate><description><![CDATA[<p><span><img border=0 src="UpFile/UpAttachment/2020-6/202069163526.jpg" /></span></p><p><span></span>&nbsp;</p><p><span></span>&nbsp;</p><p><span><A TARGET=_blank HREF=UpFile/UpAttachment/2020-6/20206916358.rar><img border=0 src=images/affix.gif>数据库发布于订阅.rar</A></span></p><p><span></span>&nbsp;</p><p><span></span>&nbsp;</p>]]></description></item>
	<item>
		<title>由于出现操作系统错误&#32;3，进程无法读取文件D:&#92;XXXX&#92;X.pre&#32;(源:&#32;MSSQL_REPL，</title>
		<link>http://www.xiang6963.cn/bbs/ShowPost.asp?ThreadID=822</link><category>数据库</category><author>piaoling</author><pubDate>2020/6/9 16:32:15</pubDate><description><![CDATA[<p style="FONT-SIZE: 13px; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; WHITE-SPACE: normal; WORD-SPACING: 0px; TEXT-TRANSFORM: none; FONT-WEIGHT: 400; COLOR: rgb(51,51,51); PADDING-BOTTOM: 0px; FONT-STYLE: normal; PADDING-TOP: 0px; PADDING-LEFT: 0px; ORPHANS: 2; WIDOWS: 2; MARGIN: 10px auto; LETTER-SPACING: normal; PADDING-RIGHT: 0px; BACKGROUND-COLOR: rgb(255,255,255); TEXT-INDENT: 0px; font-variant-ligatures: normal; font-variant-caps: normal; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial"><span style="COLOR: rgb(0,0,0); PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 0px; MARGIN: 0px; PADDING-RIGHT: 0px">解决方式：</span></p><p style="FONT-SIZE: 13px; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; WHITE-SPACE: normal; WORD-SPACING: 0px; TEXT-TRANSFORM: none; FONT-WEIGHT: 400; COLOR: rgb(51,51,51); PADDING-BOTTOM: 0px; FONT-STYLE: normal; PADDING-TOP: 0px; PADDING-LEFT: 0px; ORPHANS: 2; WIDOWS: 2; MARGIN: 10px auto; LETTER-SPACING: normal; PADDING-RIGHT: 0px; BACKGROUND-COLOR: rgb(255,255,255); TEXT-INDENT: 0px; font-variant-ligatures: normal; font-variant-caps: normal; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial"><span style="COLOR: rgb(0,0,0); PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 0px; MARGIN: 0px; PADDING-RIGHT: 0px">1.将存放快照的目录设置为共享，并设置读取的权限；</span></p><p style="FONT-SIZE: 13px; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; WHITE-SPACE: normal; WORD-SPACING: 0px; TEXT-TRANSFORM: none; FONT-WEIGHT: 400; COLOR: rgb(51,51,51); PADDING-BOTTOM: 0px; FONT-STYLE: normal; PADDING-TOP: 0px; PADDING-LEFT: 0px; ORPHANS: 2; WIDOWS: 2; MARGIN: 10px auto; LETTER-SPACING: normal; PADDING-RIGHT: 0px; BACKGROUND-COLOR: rgb(255,255,255); TEXT-INDENT: 0px; font-variant-ligatures: normal; font-variant-caps: normal; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial">　　1)发布服务器设置：<br />　　　　在发布属性中，点击左侧的快照，在右边页面中的快照文件的位置改为为E:&#92;MSSQL&#92;ReplData<br />　　　　把ReplData文件夹设置为共享，并且在安全项里，设置用户权限</p><p style="FONT-SIZE: 13px; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; WHITE-SPACE: normal; WORD-SPACING: 0px; TEXT-TRANSFORM: none; FONT-WEIGHT: 400; COLOR: rgb(51,51,51); PADDING-BOTTOM: 0px; FONT-STYLE: normal; PADDING-TOP: 0px; PADDING-LEFT: 0px; ORPHANS: 2; WIDOWS: 2; MARGIN: 10px auto; LETTER-SPACING: normal; PADDING-RIGHT: 0px; BACKGROUND-COLOR: rgb(255,255,255); TEXT-INDENT: 0px; font-variant-ligatures: normal; font-variant-caps: normal; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial">　　2)订阅服务器设置：<br />　　　　然后在订阅服务器中，右击订阅的服务名，选择属性，设置属性参数如下<br />　　　　a.快照位置修改为备用文件夹<br />　　　　b.快照文件夹修改为&nbsp;&#92;&#92;netnetnet-pc&#92;ReplData</p><p style="FONT-SIZE: 13px; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; WHITE-SPACE: normal; WORD-SPACING: 0px; TEXT-TRANSFORM: none; FONT-WEIGHT: 400; COLOR: rgb(51,51,51); PADDING-BOTTOM: 0px; FONT-STYLE: normal; PADDING-TOP: 0px; PADDING-LEFT: 0px; ORPHANS: 2; WIDOWS: 2; MARGIN: 10px auto; LETTER-SPACING: normal; PADDING-RIGHT: 0px; BACKGROUND-COLOR: rgb(255,255,255); TEXT-INDENT: 0px; font-variant-ligatures: normal; font-variant-caps: normal; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial">　　3)在订阅服务器和发布服务器设置相同账号密码的系统登录用户(例如：账号 administrator 密码 zhimakaimen)，之后设置两台服务器的SQL Server 代理 (MSSQLSERVER)服务的登录名(必须确保发布和订阅服务器的账号密码相同)如图：</p><p style="FONT-SIZE: 13px; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; WHITE-SPACE: normal; WORD-SPACING: 0px; TEXT-TRANSFORM: none; FONT-WEIGHT: 400; COLOR: rgb(51,51,51); PADDING-BOTTOM: 0px; FONT-STYLE: normal; PADDING-TOP: 0px; PADDING-LEFT: 0px; ORPHANS: 2; WIDOWS: 2; MARGIN: 10px auto; LETTER-SPACING: normal; PADDING-RIGHT: 0px; BACKGROUND-COLOR: rgb(255,255,255); TEXT-INDENT: 0px; font-variant-ligatures: normal; font-variant-caps: normal; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial"><span style="COLOR: rgb(0,0,0); PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 0px; MARGIN: 0px; PADDING-RIGHT: 0px">2.请求订阅改成推送订阅（会消耗发布服务器较多性能）</span></p>]]></description></item>
	<item>
		<title>win10升级后，已经安装的sql2000提示无法定位序数1于动态链接库sqlunirl.dll解决</title>
		<link>http://www.xiang6963.cn/bbs/ShowPost.asp?ThreadID=821</link><category>数据库</category><author>piaoling</author><pubDate>2020/6/5 15:58:44</pubDate><description><![CDATA[<p><span><A TARGET=_blank HREF=UpFile/UpAttachment/2020-6/202065155839.rar><img border=0 src=images/affix.gif>sql 2000 baocuo.rar</A></span></p><p>&nbsp;</p><p>找到在sql安装盘里的&#92;<span style=&#39;FONT-FAMILY: "微软雅黑", Arial, simsun, "宋体"; COLOR: rgb(51,51,51); LINE-HEIGHT: 22px&#39;>X86&#92;SYSTEM下的sqlunirl.dll文件，然后右键上面有个"获取</span><span style=&#39;FONT-FAMILY: "微软雅黑", Arial, simsun, "宋体"; COLOR: rgb(51,51,51); LINE-HEIGHT: 22px&#39;>TrustedInstaller权限</span><span style=&#39;FONT-FAMILY: "微软雅黑", Arial, simsun, "宋体"; COLOR: rgb(51,51,51); LINE-HEIGHT: 22px&#39;>"，点确认，就可以。然后将该文件复制到</span><span style=&#39;FONT-FAMILY: "微软雅黑", Arial, simsun, "宋体"; COLOR: rgb(51,51,51); LINE-HEIGHT: 22px&#39;>c:&#92;windows&#92;syswow64进行替换，就可以打开mssql2000了。一切正常。</span></p><p><span style=&#39;FONT-FAMILY: "微软雅黑", Arial, simsun, "宋体"; COLOR: rgb(51,51,51); LINE-HEIGHT: 22px&#39;></span>&nbsp;</p><p><span style=&#39;FONT-FAMILY: "微软雅黑", Arial, simsun, "宋体"; COLOR: rgb(51,51,51); LINE-HEIGHT: 22px&#39;></span>&nbsp;</p>]]></description></item>
	<item>
		<title>不显示删除回复显示所有回复显示星级回复显示得分回复&#32;只有mdf文件，不想重起SQL服务&#44;如何恢复数</title>
		<link>http://www.xiang6963.cn/bbs/ShowPost.asp?ThreadID=813</link><category>数据库</category><author>piaoling</author><pubDate>2011/4/2 11:54:9</pubDate><description><![CDATA[无数据库日志文件恢复数据库方法两则<br /><br />方法一<br /><br />1.新建一个同名的数据库<br /><br />2.再停掉sql server(注意不要分离数据库)<br /><br />3.用原数据库的数据文件覆盖掉这个新建的数据库<br /><br />4.再重启sql server<br /><br />5.此时打开企业管理器时会出现置疑，先不管，执行下面的语句（注意修改其中的数据库名)<br /><br />6.完成后一般就可以访问数据库中的数据了,这时,数据库本身一般还要问题,解决办法是,利用<br />数据库的脚本创建一个新的数据库,并将数据导进去就行了.<br /><br />USE MASTER<br />GO<br /><br />SP_CONFIGURE &#39;ALLOW UPDATES&#39;,1 RECONFIGURE WITH OVERRIDE<br />GO<br /><br />UPDATE SYSDATABASES SET STATUS =32768 WHERE NAME=&#39;置疑的数据库名&#39;<br />Go<br /><br />sp_dboption &#39;置疑的数据库名&#39;, &#39;single user&#39;, &#39;true&#39;<br />Go<br /><br />DBCC CHECKDB(&#39;置疑的数据库名&#39;) <br />Go<br /><br />update sysdatabases set status =28 where name=&#39;置疑的数据库名&#39;<br />Go<br /><br />sp_configure &#39;allow updates&#39;, 0 reconfigure with override<br />Go<br /><br />sp_dboption &#39;置疑的数据库名&#39;, &#39;single user&#39;, &#39;false&#39;<br />Go<br /><br />方法二<br /><br />事情的起因：昨天，系统管理员告诉我，我们一个内部应用数据库所在的磁盘空间不足了。我注意到数据库事件日志文件XXX_Data.ldf文件已经增长到了3GB，于是我决意缩小这个日志文件。经过收缩数据库等操作未果后，我犯了一个自进入行业以来的最大最愚蠢的错误：竟然误删除了这个日志文件！后来我看到所有论及数据库恢复的文章上都说道：“无论如何都要保证数据库日志文件存在，它至关重要”，甚至微软甚至有一篇KB文章讲如何只靠日志文件恢复数据库的。我真是不知道我那时候是怎么想的？！<br /><br />这下子坏了！这个数据库连不上了，企业管理器在它的旁边写着“(置疑)”。而且最要命的，这个数据库从来没有备份了。我唯一找得到的是迁移半年前的另外一个数据库服务器，应用倒是能用了，但是少了许多记录、表和存储过程。最终成功恢复的全部步骤如下：<br /><br />设置数据库为紧急模式<br />停掉SQL Server服务；<br /><br />把应用数据库的数据文件XXX_Data.mdf移走；<br /><br />重新建立一个同名的数据库XXX；<br /><br />停掉SQL服务；<br /><br />把原来的数据文件再覆盖回来；<br /><br />运行以下语句，把该数据库设置为紧急模式；<br /><br />运行“Use Master<br /><br />Go<br /><br />sp_configure &#39;allow updates&#39;, 1<br /><br />reconfigure with override<br /><br />Go”<br /><br />执行结果：<br /><br />DBCC 执行完毕。如果 DBCC 输出了错误信息，请与系统管理员联系。<br /><br />已将配置选项 &#39;allow updates&#39; 从 0 改为 1。请运行 RECONFIGURE 语句以安装。<br /><br />接着运行“update sysdatabases set status = 32768 where name = &#39;XXX&#39;”<br /><br />执行结果：（所影响的行数为 1 行）<br /><br />重启SQL Server服务；<br /><br />运行以下语句，把应用数据库设置为Single User模式；<br /><br />运行“sp_dboption &#39;XXX&#39;, &#39;single user&#39;, &#39;true&#39;”<br /><br />执行结果：<br /><br />命令已成功完成。<br /><br />做DBCC CHECKDB；<br /><br />运行“DBCC CHECKDB(&#39;XXX&#39;)”<br /><br />执行结果：<br /><br />&#39;XXX&#39; 的 DBCC 结果。<br /><br />&#39;sysobjects&#39; 的 DBCC 结果。<br /><br />对象 &#39;sysobjects&#39; 有 273 行，这些行位于 5 页中。<br /><br />&#39;sysindexes&#39; 的 DBCC 结果。<br /><br />对象 &#39;sysindexes&#39; 有 202 行，这些行位于 7 页中。<br /><br />&#39;syscolumns&#39; 的 DBCC 结果。<br /><br />………<br /><br />运行以下语句把系统表的修改选项关掉；<br /><br />运行“sp_resetstatus "XXX"<br /><br />go<br /><br />sp_configure &#39;allow updates&#39;, 0<br /><br />reconfigure with override<br /><br />Go”<br /><br />执行结果：<br /><br />在 sysdatabases 中更新数据库 &#39;XXX&#39; 的条目之前，模式 = 0，状态 = 28（状态 suspect_bit = 0），<br /><br />没有更新 sysdatabases 中的任何行，因为已正确地重置了模式和状态。没有错误，未进行任何更改。<br /><br />DBCC 执行完毕。如果 DBCC 输出了错误信息，请与系统管理员联系。<br /><br />已将配置选项 &#39;allow updates&#39; 从 1 改为 0。请运行 RECONFIGURE 语句以安装。<br /><br />重新建立另外一个数据库XXX.Lost；<br /><br />DTS导出向导<br />运行DTS导出向导；<br /><br />复制源选择EmergencyMode的数据库XXX，导入到XXX.Lost；<br /><br />选择“在SQL Server数据库之间复制对象和数据”，试了多次，好像不行，只是复制过来了所有表结构，但是没有数据，也没有视图和存储过程，而且DTS向导最后报告复制失败；<br /><br />所以最后选择“从源数据库复制表和视图”，但是后来发现，这样总是只能复制一部分表记录；<br /><br />于是选择“用一条查询指定要传输的数据”，缺哪个表记录，就导哪个；<br /><br />视图和存储过程是执行SQL语句添加的。<br /><br />这样，XXX.Lost数据库就可以替换原来的应用数据库了。<br /><br />]]></description></item>
	<item>
		<title>iis&#32;03&#32;server&#32;系统&#32;附件下载大小...</title>
		<link>http://www.xiang6963.cn/bbs/ShowPost.asp?ThreadID=783</link><category>iis</category><author>piaoling</author><pubDate>2010/6/3 16:48:7</pubDate><description><![CDATA[1. 在服务管理中，关闭IIS Admin Service 服务<br />2. 打开 Windows&#92;system32&#92;inesrv&#92;metabase.xml <br />3. 修改 AspBufferingLimit的值为自己需要的, 默认为4194304（4M）<br />4. 启动 IIS Admin Service服务即可。]]></description></item>
	<item>
		<title>SQL&#32;Server&#32;2005&#32;服务无法启动&#32;TDSSNIClient初始化失败&#32;无法生成&#32;FRun</title>
		<link>http://www.xiang6963.cn/bbs/ShowPost.asp?ThreadID=730</link><category>数据库</category><author>piaoling</author><pubDate>2009/11/17 17:19:57</pubDate><description><![CDATA[运行services.msc &gt;&gt; 找到mssqlserver服务<p>双击以后，选择“登录”选项卡，“登录身份”选“本地系统帐户”或相应administrators组的成员，并填写那个用户的密码。</p><p>还有建议最好把<font color=#ff0000>via协议也禁用</font></p>]]></description></item>
	<item>
		<title>使用WAS&#32;Tool对web进行压力测试</title>
		<link>http://www.xiang6963.cn/bbs/ShowPost.asp?ThreadID=722</link><category>iis</category><author>piaoling</author><pubDate>2009/10/15 11:18:14</pubDate><description><![CDATA[<p>Web压力测试是目前比较流行的话题，利用Web压力测试可以有效地测试一些Web服务器的运行状态和响应时间等等，对于Web服务器的承受力测试是个非常好的手法。Web 压力测试通常是利用一些工具，例如微软的Web Application Stress、Linux下的siege、功能全面的Web-CT等等，这些都是非常优秀的Web压力测试工具。 <br />虽然这些工具给我们测试服务器承受能力带来方便，但是它们的危害却更是惊人，甚至于利用随便一种比较全面的测试工具就可以对一台小型的Web服务器发动灾难性的拒绝式攻击。下面我就带大家利用微软的Web Application Stress进行一次Web压力测试，其目的是为了让大家看到它的巨大危害。 </p><p>一、工具简单介绍 </p><p>Microsoft Web Application Stress Tool 是由微软的网站测试人员所开发，专门用来进行实际网站压力测试的一套工具。透过这套功能强大的压力测试工具，您可以使用少量的客户端计算机仿真大量用户上线对网站服务所可能造成的影响，在网站实际上线之前先对您所设计的网站进行如同真实环境下的测试，以找出系统潜在的问题，对系统进行进一步的调整、设置工作。就是因为这些特性，才使它具备了D.O.S轰炸的功能。 </p><p>小提示：D.O.S（拒绝服务攻击）通过使你的服务计算机崩溃或把它压跨来阻止你提供服务。简单来说，就是让你的计算机提供可能多的服务从而使你的计算机陷入崩溃的边缘或崩溃。 </p><p>二、工具简单设置 </p><p>打开Web Application Stress Tool，很简洁的一个页面（如图1），上面是工具栏，左下方是功能选项，右下方是详细设置选项。在对目标Web服务器进行压力测试之前，先对它进行一些必要的设置。 </p><p></p><p>图1 </p><p><br />&nbsp;</p><p></p><p>1.&nbsp;&nbsp;&nbsp;&nbsp; 在“settings”的功能设置中（如图2），一个是Stress level (threads)这里是指定程序在后台用多少线程进行请求，也就是相当于模拟多少个客户机的连接，更加形象的就是说设置多少轰炸的线程数。一般填写500～1000，因为这个线程数是根据本机的承受力来设置的，如果你对自己的机器配置有足够信心的话，那么设置的越高，轰炸的效果越好。 </p><p></p><p>图2 </p><p>&nbsp;</p><p></p><p>2.在“Test Run Time”中来指定一次压力测试需要持续的时间，分为天、小时、分、秒几个单位级别，你根据实际情况来设置吧！ </p><p>3.其余的选项不太重要，这里就不再浪费笔墨，朋友们可以自己尝试一下设置。 </p><p>三、压力测试 </p><p>工具介绍完了，下面来准备条件：这里与一个朋友商量好进行测试，他是单机上网，机器配置是CPU:Athlon XP2500+、内存512MB、硬盘80GB等，机器配置还不错。他在机器上安装了IIS，架设了一台对外的Web服务器，Web服务中的程序是动网7.0。我就利用压力测试工具对这台服务器进行测试。 </p><p>步骤1：在工具中点右键，选择Add命令，增加了一个新的测试项目：New script，对它进行设置，在主选项中的server中填写要测试的服务器的IP地址。在下方选择测试的Web连接方式，这里的方式Verb选择get，path选择要测试的Web页面路径，这里填写/Index.asp,即动网的首页文件（如图3）。 </p><p></p><p>图3 </p><p>&nbsp;</p><p></p><p>步骤2：在“Settings”的功能设置中将Stress level (threads)线程数设置为1000。完毕后，点工具中的灰色三角按钮即可进行测试（如图4）。测试完毕，等待朋友把任务管理器以及连接查看的截图发过来！ </p><p></p><p>图4 </p><p>&nbsp;</p><p></p><p>攻击开始后，朋友从任务管理器中可以看到CPU使用率已经达到100%，损耗率达到最大（如图5）。在CMD窗口中使用命令netstat -an,可以看到我的IP地址在朋友服务器上的80端口进行了非常多的连接（如图6）。而且它的Web网站已经打不开了，提示过多用户连接，达到了跟D.O.S攻击一样的目的。 </p><p></p><p>图5 </p><p>&nbsp;</p><p>图6 </p><p>&nbsp;</p><p></p><p>试想，如果利用多台肉鸡对一台服务器进行Web压力测试，那么对这台服务器来说将是灭顶之灾，所以朋友们在使用它之前一定要慎重考虑。 <br />l另使用：<br />制作WAS脚本是相当简单的，不过要制作出模拟真实用户活动的脚本有点儿复杂。如果你已经有一个运行的Web网站，可以使用Web服务器的日志来确定Web网站上的用户点击分布。如果你的应用还没有开始运行，那么只好根据经验作一些猜测了。我们假定有30个会员在浏览书店，同时又有一个会员正在购买。要模拟两者混合而成的行为，首先必须创建页面组并在脚本的Page Group分枝确定点击分布情况。在Page Group分枝中我们可以增加、修改或删除页面组，也可以为各个组修改流量的分布。 <br />创建了页面组之后，我们就可以在主脚本视图中赋予各个请求不同的页面组，如图3所示。为每个请求指定页面组相当于告诉WAS如何分布流量。记住在本例中对grp_buy组页面的请求约占总数的3%，而对grp_browse组页面的请求约占97%。<br />如果网站提供个性化服务，要进行身份验证或使用Cookies，我们还要为WAS提供一个用户目录。WAS中的用户存储了发送给服务器的密码以及服务器发送给客户端的Cookies。增加用户数量并不增加Web服务器的负载。必须提供足够数量的用户以满足并发连接的要求（Stesss Level乘以Stress Multiplier）。Stress Level和Stress multiplier这二个项决定了访问服务器的并发连接的数量。</p><p>&nbsp;</p>]]></description></item>
	<item>
		<title>SQL&#32;Server中bit数据类型应用</title>
		<link>http://www.xiang6963.cn/bbs/ShowPost.asp?ThreadID=713</link><category>数据库</category><author>piaoling</author><pubDate>2009/9/22 15:53:36</pubDate><description><![CDATA[<p>使用过 Access 的朋友都知道，Access 里有个“是/否”数据类型，在 SQL Server 中，没有这个名称，而使用 <strong>bit</strong>。在使用过程中有几点需要注意的：</p><p>１、<strong>bit </strong>与 SQL Server 的整型和数字数据相似的数字数据，但 <strong>bit</strong> 列只能存储 0 和 1。</p><p>２、在插入、修改 <strong>bit</strong> 数据时，使用 0 或 1 ，而不是 false 或 true，<strong>bit</strong> 字段放在 where 查询条件中也是这样。</p><p>３、利用 RecordSet 将 <strong>bit</strong> 字段中的数据取出来后，它是 boolean 类型，而不是数字类型，即在判断时应该使用 if rs("bitField") then，而不是 if rs("bitField")=1 then。</p><p></p><p>bit可以接受任意类型的数据，不过 0 和 1 之外的数据都会被储存为 1 ，并且不允许 NULL&nbsp;&nbsp;&nbsp; ！</p>]]></description></item>
	<item>
		<title>ACCESS转SQL2000的方法和注意事项</title>
		<link>http://www.xiang6963.cn/bbs/ShowPost.asp?ThreadID=712</link><category>数据库</category><author>piaoling</author><pubDate>2009/9/22 14:56:57</pubDate><description><![CDATA[很多朋友想用SQL2000数据库的编程方法，但是却又苦于自己是学ACCESS的，对SQL只是一点点的了解而已，这里我给大家提供以下参考---将ACCESS转化成SQL2000的方法和注意事项 <br />一，首先，我说的是在ACCESS2000，SQL2000之间转换，其他的我也还没有尝试过，希望大家多多试验，肯定是有办法的； <br />二，转换的方法 <br />1，打开”控制面板“下”管理工具“中的”数据库源“； <br />2，按”添加“添加一个新的数据源，在选择栏里选”Driver do microsoft Access <br />(*.mdb)”,完成后将出现一个框, <br /><br />在”数据库源“里面输入你想写的名称，我取名叫“ABC”,说明不需要填，接着，按下面的选择，寻找你的数据库地址和选中（注意，请先备份自己的ACCESS数据库），然后确定。 <br />数据源在这里建好了，剩下转换了。 <br /><br />3，打开SQL2000企业管理器，进入数据库，新建一个空的数据库“ABC”； <br />4，选择新建立的数据库，按鼠标右键，选择“所有任务”下“导入数据”，按“下一步”继续； <br />5，在数据库源下拉但中选择”Driver do microsoft Access(*.mdb)“，在”用户/系统DSN“中，选种你刚才添加的”ABC“，按 ”下一步“； <br />6，“目的”不需要修改，选择服务器（一般下为自己的本机"local",也可以选择服务器地址或者局域网地址,确定你的权限是否可以操作,),"使用WINDOWS 身份验证"指用自己的系统管理员身份操作,"使用SQL身份操作验证"可以用于网站的操作,推荐用后者; <br />7,选上"使用SQL身份操作验证"后,填写你的用户名和密码,我自己选择的是系统默认号码"sa","****",数据库选择刚新建的"ABC",按"下一步"; <br />8,这一步的两个单项选择,"从数据源复制表和视图"与"用一条查询指令指定要传输的数据",选择前者,按"下一步"继续; <br />9,这里将出现你自己ACCESS数据库的表,按"全选"后,下一步; <br />10,"DTS导入/导出向导",看"立即运行"被选中按"下一步", <br />11,按"完成"继续; <br />12,这个步骤你将看到你的数据被导入SQL2000里面,当出现"已经成功把XXX个表导入到数据库"的字样,而且所有的表前面都有绿色的勾,就表示成功导入所有数据,如果中途出现问题或者表前面有红色的叉的话,说明该表没有成功导入,这时就要回去查看自己的操作是否正确了. <br /><br />三,数据修改 <br />1,由于SQL2000里面没有"自动编号",所以你的以"自动编号"设置的字段都会变成非空的字段,这就必须手工修改这些字段,并把他的"标示"选择"是",种子为"1",增量为"1", <br />2,另外,ACCESS2000转换成SQL2000后,原来属性为"是/否"的字段将被转换成非空的"bit",这时候你必须修改成自己想要的属性了; <br />3,另外,大家要注意对时间函数的把握.ACCESS与SQL是有很多不同的.<br />]]></description></item>
	<item>
		<title>IIS下isapi_rewrite&#32;full&#32;多站点重写完美解决方案</title>
		<link>http://www.xiang6963.cn/bbs/ShowPost.asp?ThreadID=699</link><category>iis</category><author>piaoling</author><pubDate>2009/9/8 15:25:53</pubDate><description><![CDATA[首先<span class=t_tag onclick=tagshow(event) href="tag.php?name=%CF%C2%D4%D8">下载</span>一个<span class=t_tag onclick=tagshow(event) href="tag.php?name=%C6%C6%BD%E2">破解</span>版的或是买一个正式版的(如果你钱多的话,呵呵)<br /><br />一步步安装好后,<span class=t_tag onclick=tagshow(event) href="tag.php?name=%C9%E8%D6%C3">设置</span><br /><br />1、将下载<span class=t_tag onclick=tagshow(event) href="tag.php?name=%CE%C4%BC%FE">文件</span>解压安装，安装过程中你可以自己选择安装<span class=t_tag onclick=tagshow(event) href="tag.php?name=%C4%BF%C2%BC">目录</span>，我是安装在D:&#92;rewrite&#92;ISAPI_Rewrite中<br />2、安装完成后打开ISAPI_Rewrite目录中ISRWConfig.exe，输入上面的注册码完成注册。<br />3、设置ISAPI_Rewrite目录<span class=t_tag onclick=tagshow(event) href="tag.php?name=%C8%A8%CF%DE">权限</span>（以下3-4步骤一般无须设置，默认安装后已经给你设置好了，如果发现不能用再来设置）<br />权限说明：<br />Administrators 和 SYSTEM 全部权限<br />IIS_WPG&nbsp; &nbsp;读取和<span class=t_tag onclick=tagshow(event) href="tag.php?name=%D4%CB%D0%D0">运行</span>/读取<br />进入ISAPI_Rewrite目录，右键ISAPI_Rewrite.dll-属性-安全，加入Everyone的<span class=t_tag onclick=tagshow(event) href="tag.php?name=%B7%C3%CE%CA">访问</span>"读取"权限。<br />4、打开IIS<span class=t_tag onclick=tagshow(event) href="tag.php?name=%B9%DC%C0%ED">管理</span>器，点击左边网站，右键-属性-ISAPI筛选器-然后定位到D:&#92;rewrite&#92;ISAPI_Rewrite&#92;ISAPI_Rewrite.dll确定启用，然后重启IIS生效。<br /><br /><br />通过上面的安装与设置后,rewrite已经可以使用了,现在来说多站点的配置<span class=t_tag onclick=tagshow(event) href="tag.php?name=%BD%E2%BE%F6">解决</span>方式<br /><br />如果你像我一样有多个站点都装了dz,又不想一个站点一个站点的去设置,那就采用全局的方式配置,全局配置方式像lite版的一样,把规则写到安装目录下的httpd.ini文件中,重启一下<span class=t_tag onclick=tagshow(event) href="tag.php?name=iis">iis</span>就可以了,但是切记全局规则一定要比较规范严谨,不然就可能造成很多问题,比如说fck用不了啦,一些页面打不开啦等等<br />我测试过没有问题的规则现在发出来,给大家使用<br />------------------------------------------------------------------------<br /><br /># DZ6.0/6.1/7.0论坛+UCHome Rewrite规则,针对可操作IIS<span class=t_tag onclick=tagshow(event) href="tag.php?name=%D3%C3%BB%A7">用户</span>,<br /># 此默认规则只针对UCHome程序放在根目录中用独立<span class=t_tag onclick=tagshow(event) href="tag.php?name=%D3%F2%C3%FB">域名</span>访问的,论坛也可以直接用.<br />RewriteRule ^(.*)/archiver/((fid|tid)-[&#92;w&#92;-]+&#92;.html)&#92;?*(.*)$ $1/archiver/index&#92;.php&#92;?$2&amp;$4<br />RewriteRule ^(.*)/forum-([0-9]+)-([0-9]+)&#92;.html&#92;?*(.*)$ $1/forumdisplay&#92;.php&#92;?fid=$2&amp;page=$3&amp;$4<br />RewriteRule ^(.*)/thread-([0-9]+)-([0-9]+)-([0-9]+)&#92;.html&#92;?*(.*)$ $1/viewthread&#92;.php&#92;?tid=$2&amp;extra=page&#92;%3D$4&amp;page=$3&amp;$4<br />RewriteRule ^(.*)/space-(username|uid)-(.+)&#92;.html&#92;?*(.*)$ $1/space&#92;.php&#92;?$2=$3&amp;$4<br />RewriteRule ^(.*)/tag-(.+)&#92;.html&#92;?*(.*)$ $1/tag&#92;.php&#92;?name=$2&amp;$3<br />#uch放在根目录时的伪静态<br />RewriteRule ^/(space|network)-(.+)&#92;.html$ /$1&#92;.php&#92;?rewrite=$2 [L]<br />RewriteRule ^/(space|network)&#92;.html$ /$1&#92;.php [L]<br />RewriteRule ^/([0-9]+)$ /space&#92;.php&#92;?uid=$1 [L]<br />#uch放在二级目录时的伪静态<br />RewriteRule ^/uhome/(space|network)-(.+)&#92;.html$ /uhome/$1&#92;.php&#92;?rewrite=$2 [L]<br />RewriteRule ^/uhome/(space|network)&#92;.html$ /uhome/$1&#92;.php [L]<br />RewriteRule ^/uhome/([0-9]+)$ /uhome/space&#92;.php&#92;?uid=$1 [L] <br /><br />---------------------------------------------------------------------<br /><br /># Ecshop重写规则<br />#RewriteRule ^(.*)/index.html&nbsp; &nbsp; $1/index.php <I><br />#RewriteRule ^(.*)/default.html&nbsp;&nbsp;$1/index.php <I><br /># access any object by its numeric identifier<br />RewriteRule /feed-c([0-9]+)&#92;.xml /feed&#92;.php&#92;?cat=$1 <br />RewriteRule /feed-b([0-9]+)&#92;.xml /feed&#92;.php&#92;?brand=$1<br />RewriteRule /feed&#92;.xml$&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;feed&#92;.php<br />RewriteRule /category-([0-9]+)-b([0-9]+)-min([0-9]+)-max([0-9]+)-attr([^-]*)-([0-9]+)-(.+)-([a-zA-Z]+)(.*)&#92;.html /category&#92;.php&#92;?id=$1&amp;brand=$2&amp;price_min=$3&amp;price_max=$4&amp;filter_attr=$5&amp;page=$6&amp;sort=$7&amp;order=$8<br />RewriteRule /category-([0-9]+)-b([0-9]+)-min([0-9]+)-max([0-9]+)-attr([^-]*)(.*)&#92;.html /category&#92;.php&#92;?id=$1&amp;brand=$2&amp;price_min=$3&amp;price_max=$4&amp;filter_attr=$5<br />RewriteRule /category-([0-9]+)-b([0-9]+)-([0-9]+)-(.+)-([a-zA-Z]+)(.*)&#92;.html /category&#92;.php&#92;?id=$1&amp;brand=$2&amp;page=$3&amp;sort=$4&amp;order=$5<br />RewriteRule /category-([0-9]+)-b([0-9]+)-([0-9]+)(.*)&#92;.html /category&#92;.php&#92;?id=$1&amp;brand=$2&amp;page=$3<br />RewriteRule /category-([0-9]+)-b([0-9]+)(.*)&#92;.html /category&#92;.php&#92;?id=$1&amp;brand=$2<br />RewriteRule /category-([0-9]+)(.*)&#92;.html /category&#92;.php&#92;?id=$1<br />RewriteRule /goods-([0-9]+)(.*)&#92;.html /goods&#92;.php&#92;?id=$1<br />RewriteRule /article_cat-([0-9]+)-([0-9]+)-(.+)-([a-zA-Z]+)(.*)&#92;.html /article_cat&#92;.php&#92;?id=$1&amp;page=$2&amp;sort=$3&amp;order=$4<br />RewriteRule /article_cat-([0-9]+)-([0-9]+)(.*)&#92;.html /article_cat&#92;.php&#92;?id=$1&amp;page=$2<br />RewriteRule /article_cat-([0-9]+)(.*)&#92;.html /article_cat&#92;.php&#92;?id=$1<br />RewriteRule /article-([0-9]+)(.*)&#92;.html /article&#92;.php&#92;?id=$1<br />RewriteRule /brand-([0-9]+)-c([0-9]+)-([0-9]+)-(.+)-([a-zA-Z]+)&#92;.html /brand&#92;.php&#92;?id=$1&amp;cat=$2&amp;page=$3&amp;sort=$4&amp;order=$5<br />RewriteRule /brand-([0-9]+)-c([0-9]+)-([0-9]+)(.*)&#92;.html /brand&#92;.php&#92;?id=$1&amp;cat=$2&amp;page=$3<br />RewriteRule /brand-([0-9]+)-c([0-9]+)(.*)&#92;.html /brand&#92;.php&#92;?id=$1&amp;cat=$2<br />RewriteRule /brand-([0-9]+)(.*)&#92;.html /brand&#92;.php&#92;?id=$1<br />RewriteRule /tag-(.*)&#92;.html /search&#92;.php&#92;?keywords=$1<br />RewriteRule /snatch-([0-9]+)&#92;.html /snatch&#92;.php&#92;?id=$1<br />RewriteRule /group_buy-([0-9]+)&#92;.html /group_buy&#92;.php&#92;?act=view&amp;id=$1<br />RewriteRule /auction-([0-9]+)&#92;.html /auction&#92;.php&#92;?act=view&amp;id=$1<br /><br />--------------------------------------------------------------------<br /><br /><br />#modoer伪静态规则for1.1<br />#首页去除首页规则，不然会引起其它子站出错<br />#RewriteRule ^(.*)/index&#92;.html&#92;?*(.*)$ $1/index&#92;.php [L]<br />#TAG标签页<br />RewriteRule ^(.*)/shop/tag&#92;.html&#92;?*(.*)$ $1/shop/tag&#92;.php [L]<br />RewriteRule ^(.*)/shop/tag_(.+)&#92;.html&#92;?*(.*)$ $1/shop/tag&#92;.php&#92;?tagname=$2 [L]<br />#商铺大全<br />RewriteRule ^(.*)/shop/cate_([0-9]+)&#92;.html&#92;?*(.*)$ $1/shop/cate&#92;.php&#92;?cd=$2 [L]<br />RewriteRule ^(.*)/cate_([0-9]+)_([a-z]+)_([0-9]+)&#92;.html&#92;?*(.*)$ $1/shop/cate&#92;.php&#92;?cd=$2&amp;order=$3&amp;page=$4 [L]<br />#RewriteRule ^shop/cate_([0-9]+)(&#92;.html|) shop/cate.php?cd=$1<br />#RewriteRule ^shop/cate_([0-9]+)_([a-z]+)_([0-9]+)(&#92;.html|) shop/cate.php?cd=$1&amp;order=$2&amp;page=$3<br />#商铺页面<br />RewriteRule ^(.*)/shop/([0-9]+)&#92;?*(.*)$ $1/shop/shop&#92;.php&#92;?shopid=$2$3 [L]<br />#RewriteRule ^shop/(shop_|)([0-9]+)(&#92;.html|)$ shop/shop.php?shopid=$2$3<br />#点评内容页面<br />RewriteRule ^(.*)/shop/viewreview_([0-9]+)&#92;.html&#92;?*(.*)$ $1/shop/viewreview&#92;.php&#92;?reviewid=$2 [L]<br />RewriteRule ^(.*)/shop/viewreview_([0-9]+)&#92;.html#respond$&#92;?*(.*)$ $1/shop/viewreview.php?reviewid=$2#respond [L]<br />#个人空间<br />RewriteRule ^(.*)/space/([0-9]+)$ $1/space/index&#92;.php&#92;?suid=$2 [L]<br />RewriteRule ^(.*)/space/([0-9]+)_([a-z]+)&#92;?*(.*)$ $1/space/index&#92;.php&#92;?suid=$2&amp;n=$3 [L]<br />#兑奖中心<br />RewriteRule ^(.*)/exchange/gift_([0-9]+)&#92;.html&#92;?*(.*)$ $1/exchange/index&#92;.php&#92;?action=gift&amp;giftid=$2 [L]<br />#优惠券,这个有问题，不用<br />#RewriteRule ^(.*)/coupon/([0-9]+)&#92;?*(.*)$ $1/coupon/index&#92;.php&#92;?ac=detail&amp;couponid=$2$3 [L]<br />#新闻资讯<br />RewriteRule ^(.*)/article/([0-9]+)&#92;.html&#92;?*(.*)$ $1/article/article&#92;.php&#92;?articleid=$2 [L]<br />RewriteRule ^(.*)/article/classid_([0-9]+)&#92;.html&#92;?*(.*)$ $1/article/index&#92;.php&#92;?classid=$2 [L]<br /><br />---------------------------------------------------------------------------<br />这几个规则我写到了全局里,测试过不会造成其它站点的问题<br /><br />而ecmall的就会造成其它站点的问题,所以,写到站点规则里<br /><br />----------------------------------<br /><br /># Ecmall重写规则<br /># 为了确保重写规则不影响<span class=t_tag onclick=tagshow(event) href="tag.php?name=%B7%FE%CE%F1%C6%F7">服务器</span>上的其他站点<br /># 请将下面的语句前的#号去掉，并将(?:www&#92;.)?site1&#92;.com改为商店所在域名<br />RewriteCond %{HTTP:Host} (?:mall&#92;.)?ynczw&#92;.net<br />RewriteRule ^(.*)/index.html$&nbsp; &nbsp;$1/index.php <I><br />RewriteRule ^(.*)/([a-zA-Z0-9]+)_(.*)&#92;.html$ $1/index&#92;.php&#92;?app=$2&amp;arg=$3 <I><br /><br />----------------------------------<br /><br />其它的使用要点,刚开始装上以后,全局重写没有任何问题,但站点重写总是失败,后来查了很多文章,总结如下<br /><br />在需要使用rewrite的站点根目录下创建httpd.ini文件,并且给相应用户的读权限<br /><br />内容开头一定要有<br /><font color=darkred>[ISAPI_Rewrite]</font><br /><br /><font color=darkred>RewriteCond Host:</font> www&#92;.x4hack&#92;.com<br /><br />其他的根据规则自行写入,切记加亮的部份一定要有,不然站点重写一定会失败]]></description></item>
	<item>
		<title>isApi_rewrite&#32;伪静态参数和命令详解</title>
		<link>http://www.xiang6963.cn/bbs/ShowPost.asp?ThreadID=698</link><category>iis</category><author>piaoling</author><pubDate>2009/9/8 15:04:49</pubDate><description><![CDATA[<p>配置：<br />在NT 2000 XP和2003平台上，在系统帐户下应该INETINFO程序应该与IIS5以共存模式过滤器运行。所以系统帐户应该给予对所有的ISAPI-REWIRITE DLLS 和所有的HTTPD。INI文件至少可读权限，我们也推荐对给予系统帐户对于所有包括HTTPD。INI文件的文件夹的可写权限，这将允许产生HTTP。PARSE。ERRORS文件，这些文件包含配置文件语法错误。对于PROXY模块也需要额外的权限，因为它将运行于连接池或HIGH-ISPLATED应用模式，IIS帐户共享池和HIGH-ISOLATION池应被给予 对RWHELPERE。DLL的可读权限。缺省情况下IWAM-《计算机名》被用于所有的池，在相应的COM+应用设置中应借助COM+ADMINISTRATION MMC SNAP-IN建立池帐户<br />配置文件格式化：</p><p>有两种形式的配置文件-GLOBAL（SERVER-LEVEL）和INDIVIDUAL（SITE-LEVAL）文件，GLOBAL配置文件应被命名为HTTPD.INI并出现在ISAPI-REWRITE安装目录中，文件的快捷方式通过开始菜单提供，INDIVIDUAL配置文件应名为HTTPD。INI并且能够出现在虚拟站点的物理根目录中，两种类型的格式化是相同的并是标准的WINDOWS。INI文件，所有的指令都应该放在这一部分并且所有指令都应该以分隔线放置，任何这一部分以外的文本都将被忽略</p><p>HTTPD.INI文件示例</p><p>[ISAPI_Rewrite]</p><p># This is a comment</p><p># 300 = 5 minutes<br />CacheClockRate 300<br />RepeatLimit 20</p><p># Block external access to the httpd.ini and httpd.parse.errors files<br />RewriteRule /httpd(?:&#92;.ini|&#92;.parse&#92;.errors) / [F,I,O]</p><p># Block external access to the Helper ISAPI Extension<br />RewriteRule .*&#92;.isrwhlp / [F,I,O]</p><p># Some custom rules<br />RewriteCond Host: (.+)</p><p>RewriteCond 指令</p><p>Syntax:（句法） RewriteCond TestVerb CondPattern [Flags]<br />这一指令定义一个条件规则，在 RewriteRule 或者 RewriteHeader或 RewriteProxy指令前预行RewriteCond指令，后面的规则 只有它的，模式匹配URI的当前状态并且额外的条件也被应用才会被应用。</p><p>TestVerb</p><p>Specifies verb that will be matched against regular expression.<br />特别定义的动词匹配规定的表达式<br />TestVerb=(URL | METHOD | VERSION | HTTPHeaderName: | %ServerVariable) where:</p><p>URL - returns Request-URI of client request as described in RFC 2068 (HTTP 1.1); <br />返回客户端在RFC2068中描述的需求的Request-URI<br />METHOD - returns HTTP method of client request (OPTIONS, GET, HEAD, POST, PUT, Delete or TRACE); <br />返回客户端需求(OPTIONS, GET, HEAD, POST, PUT, Delete or TRACE)的HTTP方法<br />VERSION - returns HTTP version; <br />返回HTTP版本<br />HTTPHeaderName - returns value of the specified HTTP header. HTTPHeaderName can be any valid HTTP header name. Header names should include the trailing colon ":". If specified header does not exists in a client&#39;s request TestVerb is treated as empty string. <br />返回特定义的HTTP头文件的值<br />HTTPHeaderName = <br />Accept:<br />Accept-Charset:<br />Accept-Encoding:<br />Accept-Language:<br />Authorization:<br />Cookie:<br />From:<br />Host:<br />If-Modified-Since:<br />If-Match:<br />If-None-Match:<br />If-Range:<br />If-Unmodified-Since:<br />Max-Forwards:<br />Proxy-Authorization:<br />Range:<br />Referer:<br />User-Agent:<br />Any-Custom-Header<br />得到更多的关于HTTP头文件的和他们的值的信息参考RFC2068</p><p>ServerVariable 返回特定义的服务器变量的值 。例如服务器端口，全部服务器变量列表应在IIS文档中建立，变量名应用%符预定；<br />CondPattern <br />The regular expression to match TestVerb<br />规则表达式匹配TestVerb<br />[Flags]<br />Flags is a comma-separated list of the following flags:</p><p>O (nOrmalize) <br />Normalizes string before processing. Normalization includes removing of an URL-encoding, illegal characters, etc. This flag is useful with URLs and URL-encoded headers<br />RewriteRule 指令<br />Syntax: RewriteRule Pattern FormatString [Flags]<br />这个指令可以不止发生一次，每个指令定义一个单独的重写规则，这些规则的定义命令很重要，因为这个命令在应用运行时规则是有用途的</p><p>I (ignore case）<br />不管大小写强行指定字符匹配，这个FLAG影响RewriteRule指令和相应的RewriteCond 指令<br />F (Forbidden)<br />对客户端做反应，停止REWRITING进程并且发送403错误，注意在这种情况下FORMATSTRING 是无用的并可以设置为任何非空字符串。<br />L (last rule)<br />不应用任何重写规则在此停止重写进程，使用这个FLAG以阻止当前被重写的URI被后面的规则再次重写<br />N (Next iteration)<br />强制REWRITINGENGINE调整规则目标并且从头重启规则检查（所有修改将保存），重启次数由RepeatLimit指定的值限制，如果这个数值超过N FLAG将被忽略<br />NS (Next iteration of the same rule)<br />以N标记工作不从相同的规则重启规则规则进程（例如强制重复规则应用），通过RepeatLimit指令指定一个反复实行某一规则的最大数目，<br />P (force proxy) <br />强制目的URI在内部强制为代理需求并且立即通过ISAPI扩展应付代理需求，必须确认代理字符串是一个有效的URI包括协议 主机等等否则代理将返回错误<br />R (explicit redirect）<br />强制服务器对客户端发出重定向指示即时应答，提供目的URI的新地址，重定向规则经常是最后规则<br />RP (permanent redirect)<br />几乎和[R]标记相同但是发布301HTTP状态而不是302HTTP状态代码<br />U (Unmangle Log)<br />当URI是源需求而不是重写需求时记载URI<br />O (nOrmalize)<br />在实行之前标准化字符串。标准化包括URL-ENCODING，不合法的字符的再移动等，这个标记对于URLS和URLS-ENDODED头是有用的 <br />CL (Case Lower) <br />小写<br />CU (Case Upper) <br />大写<br />RewriteHeader directive<br />Syntax: RewriteHeader HeaderName Pattern FormatString [Flags] <br />这个指令是RewriteRule的更概括化变种，它不仅重写URL的客户端需求部分，而且重写HTTP头，这个指令不仅用于重写。生成，删除任何HTTP头，甚至改变客户端请求的方法<br />HeaderName <br />指定将被重写的客户头，可取的值与 RewriteCond 指令中TestVerb参数相同</p><p>Pattern<br />限定规则表达式以匹配Request-URI，<br />FormatString <br />限定将生成新的URI的FormatString <br />[Flags]<br />是一个下列FLAGS的命令分隔列表 <br />I (ignore case）<br />不管大小写强行指定字符匹配，这个FLAG影响RewriteRule指令和相应的RewriteCond 指令<br />F (Forbidden)<br />对客户端做反应，停止REWRITING进程并且发送403错误，注意在这种情况下FORMATSTRING 是无用的并可以设置为任何非空字符串。<br />L (last rule)<br />不应用任何重写规则在此停止重写进程，使用这个FLAG以阻止当前被重写的URI被后面的规则再次重写<br />N (Next iteration)<br />强制REWRITINGENGINE调整规则目标并且从头重启规则检查（所有修改将保存），重启次数由RepeatLimit指定的值限制，如果这个数值超过N FLAG将被忽略</p><p>NS (Next iteration of the same rule)<br />以N标记工作不从相同的规则重启规则规则进程（例如强制重复规则应用），通过RepeatLimit指令指定一个反复实行某一规则的最大数目，</p><p>R (explicit redirect）<br />强制服务器对客户端发出重定向指示即时应答，提供目的URI的新地址，重定向规则经常是最后规则<br />RP (permanent redirect)<br />几乎和[R]标记相同但是发布301HTTP状态而不是302HTTP状态代码<br />U (Unmangle Log)<br />当URI是源需求而不是重写需求时记载URI<br />O (nOrmalize)<br />在实行之前标准化字符串。标准化包括URL-ENCODING，不合法的字符的再移动等，这个标记对于URLS和URLS-ENDODED头是有用的 <br />CL (Case Lower) <br />小写<br />CU (Case Upper) <br />大写</p><p>要重移动头，FORMAT STRING模式应该生成一个空字符串，例如这一规则将从客户请求中重移代理信息<br />RewriteHeader User-Agent: .* $0<br />并且这一规则将把OLD-URL HEADER 加入请求中。<br />RewriteCond URL (.*)RewriteHeader Old-URL: ^$ $1<br />最后一个例子将通过改变请求方法定向所有的WEBDAV请求到/WEBDAV。ASP<br />RewriteCond METHOD OPTIONS<br />RewriteRule (.*) /webdav.asp?$1<br />RewriteHeader METHOD OPTIONS GET<br />RewriteProxy directive<br />Syntax: RewriteProxy Pattern FormatString [Flags] <br />强制目的URI在内部强制为代理需求并且立即通过ISAPI扩展应付代理需求，这将允许IIS作为代理服务器并且重路由到其他站点和服务器<br />Pattern<br />限定规则表达式以匹配Request-URI，<br />FormatString <br />限定将生成新的URI的FormatString <br />[Flags]<br />是一个下列FLAGS的命令分隔列表<br />D (Delegate security) <br />代理模式将试图以当前假冒的用户资格登陆远程服务器，<br />C (use Credentials) <br />代理模式将试图一在URL或基本授权头文件中指定的资格登陆远程服务器，用这个标记你可以使用http://user:password@host.com/path/ syntax 作为URL<br />F (Follow redirects)<br />例如你在两个域名注册www.site1.com 和 www.site2.com，现在你可以创建两个不同的站点而使用单一的物理站点。把以下规则加入到你的httpd.ini 文件<br />[ISAPI_Rewrite]</p><p>#Fix missing slash char on folders<br />RewriteCond Host: (.*)<br />RewriteRule ([^.?]+[^.?/]) http&#92;://$1$2/ [I,R]</p><p>#Emulate site1<br />RewriteCond Host: (?:www&#92;.)?site1&#92;.com<br />RewriteRule (.*) /site1$1 [I,L]</p><p>#Emulate site2<br />RewriteCond Host: (?:www&#92;.)?site2&#92;.com<br />RewriteRule (.*) /site2$1 [I,L]</p><p>现在你可以把你的站点放在/site1 和 /site2 目录中.</p><p>或者你可以应用更多的类规则：<br />[ISAPI_Rewrite]</p><p>#Fix missing slash char on folders<br />RewriteCond Host: (.*)<br />RewriteRule ([^.?]+[^.?/]) http&#92;://$1$2/ [I,R]</p><p>RewriteCond Host: (www&#92;.)?(.+)<br />RewriteRule (.*) /$2$3<br />为站点应该命名目录为 /somesite1.com, /somesite2.info, etc.<br />Using loops (Next flag) to convert request parameters<br />假如你希望有物理URL如 http://www.myhost.com/foo.asp?a=A&amp;b=B&amp;c=C 使用请求如 http://www.myhost.com/foo.asp/a/A/b/B/c/C 参数数量可以从两个请求之间变化</p><p>至少有两个解决办法。你可以简单的为每一可能的参数数量添加一个分隔规则或者你可以使用一个技术说明如下面的例子<br />ISAPI_Rewrite]<br />RewriteRule (.*?&#92;.asp)(&#92;?[^/]*)?/([^/]*)/([^/]*)(.*) $1(?2$2&amp;:&#92;?)$3=$4$5 [NS,I]<br />这个规则将从请求的URL中抽取一个参数追加在请求字符的末尾并且从头重启规则进程。所以它将循环直到所有参数被移动到适当的位置，或者直到超过RepeatLimit<br />也存在许多这个规则的变种。但使用不同的分隔字符，例如。使用URLS如http://www.myhost.com/foo.asp~a~A~b~B~c~C 可以应中下面的规则：<br />ISAPI_Rewrite]<br />RewriteRule (.*?&#92;.asp)(&#92;?[^~]*)?~([^~]*)~([^~]*)(.*) $1(?2$2&amp;:&#92;?)$3=$4$5 [NS,I]<br />Running servers behind IIS<br />假如我们有一个内网服务器运行IIS而几个公司服务器运行其他平台，这些服务器不能从INTERNET直接进入，而只能从我们公司的网络进入，有一个简单的例子可以使用代理标记映射其他服务器到IIS命名空间：<br />[ISAPI_Rewrite]<br />RewriteProxy /mappoint(.+) http&#92;://sitedomain$1 [I,U]<br />Moving sites from UNIX to IIS<br />这个规则可以帮助你把URL从 /~username 改变到 /username 和从 /file.html 改变到 /file.htm. 这个在你仅仅把你的站从UNIX移动到IIS并且保持搜索引擎和其他外部页面对老页面的连接时是有用的<br />[ISAPI_Rewrite]</p><p>#redirecting to update old links<br />RewriteRule (.*)&#92;.html $1.htm<br />RewriteRule /~(.*) http&#92;://myserver/$1 [R]<br />Moving site location<br />许多网管问这样的问题：他们要重定向所有的请求到一个新的网络服务器，当你需要建立一个更新的站点取代老的的时候经常出现这样的问题，解决方案是用ISAPI_Rewrite 于老服务器中<br />[ISAPI_Rewrite]</p><p>#redirecting to update old links<br />RewriteRule (.+) http&#92;://newwebserver$1 [R]</p><p>Browser-dependent content<br />Dynamically generated robots.txt<br />robots.txt是一个搜索引擎用来发现能不能被索引的文件，但是为一个大站创建一个有许多动态内容的这个文件是很复杂的工作，我们可以写一个robots.asp script</p><p>现在使用单一规则生成 robots.txt <br />[ISAPI_Rewrite]</p><p>RewriteRule /robots&#92;.txt /robots.asp<br />Making search engines to index dynamic pages<br />站点的内容存储在XML文件中，在服务器上有一个/XMLProcess.asp 文件处理XML文件并返回HTML到最终用户，URLS到文档有如下形式<br />http://www.mysite.com/XMLProcess.asp?xml=/somdir/somedoc.xml<br />但是许多公共引擎不能索引此类文档，因为URLS包含问号（文档动态生成），<br />ISAPI_Rewrite可以完全消除这个问题<br />[ISAPI_Rewrite]</p><p>RewriteRule /doc(.*)&#92;.htm /XMLProcess.asp&#92;?xml=$1.xml<br />现在使用如同http://www.mysite.com/doc/somedir/somedoc.htm的URL进入文档，搜索引擎将不知道不是somedoc.htm 文件并且内容是动态生成的<br />Negative expressions (NOT<br />有时当模式不匹配你需要应用规则，这种情况下你可以使用在规则表达式中称为Forward Lookahead Asserts <br />例如你需要不使用IE把所有用户移动到别的地点<br />[ISAPI_Rewrite]<br /># Redirect all non Internet Explorer users<br /># to another location<br />RewriteCond User-Agent: (?!.*MSIE).*<br />RewriteRule (.*) /nonie$1<br />Dynamic authentification<br />例如我们在站点上有一些成员域，我们在这个域上需要密码保护文件而我们不喜欢用BUILT-IN服务器安全，这个情况下可以建立一个ASP脚本（称为proxy.asp），这个脚本将代理所有请求到成员域并且检查请求允许，这里有一个简单的模板你可以放进你自己的授权代码</p><p>现在我们要通过配置 ISAPI_Rewrite 通过这个页面代理请求:</p><p>[ISAPI_Rewrite]<br /># Proxy all requests through proxy.asp<br />RewriteRule /members(.+) /proxy.asp&#92;?http&#92;://mysite.com/members$1<br />Blocking inline-images (stop hot linking</p><p>假设我们在http://www.mysite.com/下有些页面有一些内联 GIF图片很好，他人可以不直接协商通过盗链到他们的页面上，我们不喜欢这样因为加大了服务器流量<br />当我们不能100%保护图片，我们至少可以在浏览器发送一个HTTP Referer header的地方限制这种情况<br />[ISAPI_Rewrite]<br />RewriteCond Host: (.+)<br />RewriteCond Referer: (?!http://&#92;1.*).*<br />RewriteRule .*&#92;.(?:gif|jpg|png) /block.gif [I,O]</p>]]></description></item>
	<item>
		<title>asp伪静态化&#32;iis</title>
		<link>http://www.xiang6963.cn/bbs/ShowPost.asp?ThreadID=697</link><category>iis</category><author>piaoling</author><pubDate>2009/9/8 11:07:16</pubDate><description><![CDATA[<p>写这个教程的初衷在首页摘要已经说的很清楚了，现在就开始。<br />一、数据库很简单使用ACCESS，Data.mdb建立一个表Article，三个字段：ID，Title，Content；自动编号、标题、文章内容。<br />二、Config.asp</p><div class=codeText><div class=codeHead>ASP/Visual Basic代码</div><ol class=dp-vb><li class=alt><span><span>&lt;% &nbsp;&nbsp;</span></span> <li class=""><span class=comment><font color=#008000>&#39;数据库链接 </font></span><span>&nbsp;&nbsp;</span> <li class=alt><span>db=</span><span class=string><font color=#0000ff>"data.mdb"</font></span><span>&nbsp;&nbsp;</span> <li class=""><span class=keyword><strong><font color=#0000ff>Set</font></strong></span><span>&nbsp;conn&nbsp;=&nbsp;Server.CreateObject(</span><span class=string><font color=#0000ff>"ADODB.Connection"</font></span><span>) &nbsp;&nbsp;</span> <li class=alt><span>connstr=</span><span class=string><font color=#0000ff>"Provider=Microsoft.Jet.OLEDB.4.0;Data&nbsp;Source="</font></span><span>&nbsp;&amp;&nbsp;Server.MapPath(db) &nbsp;&nbsp;</span> <li class=""><span>conn.open&nbsp;connstr &nbsp;&nbsp;</span> <li class=alt><span>&nbsp;&nbsp;</span> <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=keyword><strong><font color=#0000ff>If</font></strong></span><span>&nbsp;Err&nbsp;</span><span class=keyword><strong><font color=#0000ff>Then</font></strong></span><span>&nbsp;&nbsp;</span> <li class=alt><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;err.Clear &nbsp;&nbsp;</span> <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=keyword><strong><font color=#0000ff>Set</font></strong></span><span>&nbsp;conn&nbsp;=&nbsp;</span><span class=keyword><strong><font color=#0000ff>Nothing</font></strong></span><span>&nbsp;&nbsp;</span> <li class=alt><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Response.Write&nbsp;</span><span class=string><font color=#0000ff>"数据库连接出错，请检查连接字串。"</font></span><span>&nbsp;&nbsp;</span> <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Response.</span><span class=keyword><strong><font color=#0000ff>End</font></strong></span><span>&nbsp;&nbsp;</span> <li class=alt><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=keyword><strong><font color=#0000ff>End</font></strong></span><span>&nbsp;</span><span class=keyword><strong><font color=#0000ff>If</font></strong></span><span>&nbsp;&nbsp;</span> <li class=""><span>&nbsp;&nbsp;</span> <li class=alt><span class=comment><font color=#008000>&#39;定义新闻阅读界面的读取 </font></span><span>&nbsp;&nbsp;</span> <li class=""><span class=keyword><strong><font color=#0000ff>Dim</font></strong></span><span>&nbsp;News_title,News_content &nbsp;&nbsp;</span> <li class=alt><span>&nbsp;&nbsp;</span> <li class=""><span class=keyword><strong><font color=#0000ff>Sub</font></strong></span><span>&nbsp;ReadNews() &nbsp;&nbsp;</span> <li class=alt><span>&nbsp;set&nbsp;rs1=server.createobject(</span><span class=string><font color=#0000ff>"adodb.recordset"</font></span><span>) &nbsp;&nbsp;</span> <li class=""><span>&nbsp;&nbsp;sql1=</span><span class=string><font color=#0000ff>"select&nbsp;id,title,content&nbsp;from&nbsp;article&nbsp;where&nbsp;id="</font></span><span>&amp;&nbsp;ID &nbsp;&nbsp;</span> <li class=alt><span>rs1.open&nbsp;sql1,conn,3,3 &nbsp;&nbsp;</span> <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;News_title=rs1(</span><span class=string><font color=#0000ff>"title"</font></span><span>) &nbsp;&nbsp;</span> <li class=alt><span>&nbsp;&nbsp;&nbsp;&nbsp;News_content=rs1(</span><span class=string><font color=#0000ff>"content"</font></span><span>) &nbsp;&nbsp;</span> <li class=""><span>rs1.close &nbsp;&nbsp;</span> <li class=alt><span>set&nbsp;rs1=</span><span class=keyword><strong><font color=#0000ff>Nothing</font></strong></span><span>&nbsp;&nbsp;</span> <li class=""><span class=keyword><strong><font color=#0000ff>End</font></strong></span><span>&nbsp;</span><span class=keyword><strong><font color=#0000ff>Sub</font></strong></span><span>&nbsp; &nbsp;&nbsp;</span> <li class=alt><span>%&gt;&nbsp;&nbsp;</span> </li></ol></div><p>三、Default.asp</p><div class=codeText><div class=codeHead>ASP/Visual Basic代码</div><ol class=dp-vb><li class=alt><span><span>&lt;!--#include&nbsp;file=</span><span class=string><font color=#0000ff>"config.asp"</font></span><span>--&gt; &nbsp;&nbsp;</span></span> <li class=""><span>&lt;ol&gt; &nbsp;&nbsp;</span> <li class=alt><span>&lt;% &nbsp;&nbsp;</span> <li class=""><span class=keyword><strong><font color=#0000ff>Set</font></strong></span><span>&nbsp;rs=server.CreateObject(</span><span class=string><font color=#0000ff>"adodb.recordset"</font></span><span>) &nbsp;&nbsp;</span> <li class=alt><span>sql=</span><span class=string><font color=#0000ff>"select&nbsp;*&nbsp;from&nbsp;Article"</font></span><span>&nbsp;&nbsp;</span> <li class=""><span>rs.open&nbsp;sql,conn,1,1 &nbsp;&nbsp;</span> <li class=alt><span>do&nbsp;while&nbsp;not&nbsp;rs.eof &nbsp;&nbsp;</span> <li class=""><span>%&gt; &nbsp;&nbsp;</span> <li class=alt><span>&lt;li&gt;&lt;a&nbsp;href=</span><span class=string><font color=#0000ff>"article.asp?/&lt;%=rs("</font></span><span>id</span><span class=string><font color=#0000ff>")%&gt;.html"</font></span><span>&gt;&lt;%=left(trim(rs(</span><span class=string><font color=#0000ff>"title"</font></span><span>)),30)%&gt;&lt;/a&gt;&lt;/li&gt; &nbsp;&nbsp;</span> <li class=""><span>&lt;% &nbsp;&nbsp;</span> <li class=alt><span>rs.movenext &nbsp;&nbsp;</span> <li class=""><span>loop &nbsp;&nbsp;</span> <li class=alt><span>rs.close &nbsp;&nbsp;</span> <li class=""><span>set&nbsp;rs=</span><span class=keyword><strong><font color=#0000ff>Nothing</font></strong></span><span>&nbsp;&nbsp;</span> <li class=alt><span>%&gt; &nbsp;&nbsp;</span> <li class=""><span>&lt;/ol&gt;&nbsp;&nbsp;</span> </li></ol></div><p>四、Article.asp&nbsp;</p><div class=codeText><div class=codeHead>ASP/Visual Basic代码</div><ol class=dp-vb><li class=alt><span><span>&lt;!--#include&nbsp;file=</span><span class=string><font color=#0000ff>"config.asp"</font></span><span>--&gt; &nbsp;&nbsp;</span></span> <li class=""><span>&lt;% &nbsp;&nbsp;</span> <li class=alt><span>id=request.QueryString(</span><span class=string><font color=#0000ff>"id"</font></span><span>) &nbsp;&nbsp;</span> <li class=""><span class=keyword><strong><font color=#0000ff>If</font></strong></span><span>&nbsp;id=</span><span class=string><font color=#0000ff>""</font></span><span>&nbsp;</span><span class=keyword><strong><font color=#0000ff>Then</font></strong></span><span>&nbsp; &nbsp;&nbsp;</span> <li class=alt><span>server_v40=Request.ServerVariables(</span><span class=string><font color=#0000ff>"QUERY_STRING"</font></span><span>) &nbsp;&nbsp;</span> <li class=""><span>id=Int(replace(replace(server_v40,</span><span class=string><font color=#0000ff>"/"</font></span><span>,</span><span class=string><font color=#0000ff>""</font></span><span>),</span><span class=string><font color=#0000ff>".html"</font></span><span>,</span><span class=string><font color=#0000ff>""</font></span><span>)) &nbsp;&nbsp;</span> <li class=alt><span class=keyword><strong><font color=#0000ff>End</font></strong></span><span>&nbsp;</span><span class=keyword><strong><font color=#0000ff>If</font></strong></span><span>&nbsp; &nbsp;&nbsp;</span> <li class=""><span class=keyword><strong><font color=#0000ff>Call</font></strong></span><span>&nbsp;ReadNews() &nbsp;&nbsp;</span> <li class=alt><span>%&gt; &nbsp;&nbsp;</span> <li class=""><span>&lt;div&gt; &nbsp;&nbsp;</span> <li class=alt><span>标题:&nbsp;&lt;b&gt;&lt;%=&nbsp;News_title%&gt;&lt;/b&gt;&lt;br&nbsp;/&gt; &nbsp;&nbsp;</span> <li class=""><span>内容:&nbsp;&lt;%=News_content%&gt; &nbsp;&nbsp;</span> <li class=alt><span>&lt;/div&gt;&nbsp;&nbsp;</span> </li></ol></div><p>这个教程已经能实现最基本的功能，具体大家就想怎么应用就八仙过海，各显神通了！</p>]]></description></item>
	<item>
		<title>asp伪静态化&#32;iis&#32;ISAPI_Rewrite</title>
		<link>http://www.xiang6963.cn/bbs/ShowPost.asp?ThreadID=694</link><category>iis</category><author>xiang6963</author><pubDate>2009/9/4 17:54:37</pubDate><description><![CDATA[<p><font size=2><strong>用ISAPI_Rewrite实现asp的静态化</strong></font></p><p><span style="FONT-SIZE: 12px"><font size=2>ASP网站程序在国内运用很广,但是类似于 im286.asp?id=20050307213811这样的URL有点不利于搜索引擎的收录,也就是说不符合友好URL(URLs- Friendly)的标准,那么我们用ISAPI_Rewrite打造一个Clean URL,</font></span></p><p><span style="FONT-SIZE: 12px"><font size=2>1.<font color=#800080>下载</font>ISAPI_Rewrite.ISAPI_Rewrite 分精简(Lite)和完全(Full)版.精简版不支持对每个虚拟主机站点进行重写,只能进行全局处理.不过对于有服务器的朋友,精简版也就够啦.精简版 下载地址:http://www.helicontech.com/download/,就是那Lite Version (free)啦.</font></span></p><p><span style="FONT-SIZE: 12px"><font size=2>2.安装.msi的文件,和装一般程序一样装就可以了,俺就装在D:&#92;ISAPI_Rewrite.<br /></font></span></p><div forimg="1">&nbsp;</div><p><span style="FONT-SIZE: 12px"><font size=2>3.接下来一步比较重要哦,看仔细喽.打开Internet 信息服务,右键,web站点属性,电ISAPI筛选器选项卡.添加筛选器,名称自己填,路径自己指定ISAPI_Rewrite.dll,然后确定.<br /></font></span></p><div forimg="1">&nbsp;</div><p><span style="FONT-SIZE: 12px"><font size=2>4.来测试一下.新建一个1ting.asp,里面写上<br /></font></span></p><center><table cellSpacing=0 cellPadding=0 width="90%" border=0><tbody><tr><td class=smalltxt></td><td align=right><font size=2>&nbsp;&nbsp;</font></td></tr><tr><td colSpan=2><table cellSpacing=1 cellPadding=10 width="100%" bgColor=#ffffff border=0><tbody><tr><td width="100%" bgColor=#f1f1f1><font size=2>&lt;%=request.querystring("inso")%&gt;</font></td></tr></tbody></table></td></tr></tbody></table></center><p><font size=2>,效果就是执行的时候1ting.asp?inso=*浏览器显示*.<br /></font></p><div forimg="1">&nbsp;</div><p></p><p><font size=2>5.<font color=#ff0000>这一步很重要哦</font>,开始添加rewrite规则.正则,好头痛,幸亏这个例子比较简单.<br />找到ISAPI_Rewrite目录,把httpd.ini的只读属性去掉,打开编辑.我们要把1ting.asp?inso=im286映射成为1ting-im286.html这样的类型,需要在httpd.ini里加上这么一行:<br /></font></p><center><table cellSpacing=0 cellPadding=0 width="90%" border=0><tbody><tr><td class=smalltxt><font size=2>&nbsp;&nbsp;</font></td><td align=right></td></tr><tr><td colSpan=2><table cellSpacing=1 cellPadding=10 width="100%" bgColor=#ffffff border=0><tbody><tr><td width="100%" bgColor=#f1f1f1><font size=2>RewriteRule /1ting-([0-9,a-z]*).html /1ting.asp&#92;?inso=$1</font></td></tr></tbody></table></td></tr></tbody></table></center><div align=left><font size=2>,保存.<br /></font><div forimg="1">&nbsp;</div><p><font size=2>6.来来来,到浏览器里查看一下效果吧.输入http://127.0.0.1/1ting.asp?inso=im286和<a target=_blank href="http://127.0.0.1/1ting-im286.html">http://127.0.0.1/1ting-im286.html</a>,显示的内容是不是都是im286?这就证明成功啦!<span> </span></font></p><p></p><div forimg="1">&nbsp;</div><p><font size=2>嘿嘿,1ting-im286.html这样的页面要比1ting.asp?inso=im286容易收入,所以现在还在用动态方式的朋友可以尝试一下这样的静态映射效果. IIS Rewrite也可以实现这样的功能。</font></p><p><font size=2>------------------------------------------------------</font></p><p><font size=2><strong>ASP之URL重写</strong></font></p><p><font size=2>下载ISAPI_Rewrite解压到任意文件夹安装，给IIS用户读取权限，在IIS右键点击一个站点，属性，ISAPI筛选器，添加，筛选器名称一定得叫 re，可执行文件就点浏览找到你解压的目录Rewrite.dll加上即可。</font></p><p><font size=2>　　重启ＩＩＳ后应该就能支持ＵＲＬ重写规则了。</font></p><p><font size=2>　　需要修改解压目录中的httpd.ini这个文件</font></p><p><font size=2>RewriteRule /info_(&#92;d+)&#92;.htm /info&#92;.asp&#92;?id=$1 [N,I]</font></p><p><font size=2>这句话就可以把提交的地址http://www.xxx.com/info_122.htm映射到真正的地址 http://www.xxx.com/info.asp?id=122</font></p><p><font size=2>如果你在处理数据翻页，那么写法是：</font></p><p><font size=2>More_&lt;%=Page%&gt;_&lt;%=type%&gt;.html （注：page是翻页页数，type是数据类型）<br />表现形式：More_1_95.html</font></p><p><font size=2>如果翻下一页，则为：More_2_95.html，继续下一页的循环，则是：<br />More_3_95.html，以此类推。</font></p><p><font size=2>不过你需要在httpd.ini文件中增加以下代码：<br />RewriteRule /More_(&#92;d+)_(&#92;d+)&#92;.html /jsp/more&#92;.jsp&#92;?page=$1&amp;type=$2 [N,I]</font></p><p><font size=2>如果你的动态程序有多个参数需要传递，那么就增加多个(&#92;d+)即可，如下：</font></p><p><font size=2>RewriteRule /More_(&#92;d+)_(&#92;d+)_(&#92;d+)&#92;.html /jsp/more&#92;.jsp&#92;?page=$1&amp;type=$2&amp;type2=$3 [N,I]</font></p><p><font size=2>翻页处理表现形式是：More_1_95.html</font></p><p><font size=2>如果想把http://www.xxx.com/info.asp?id=50#abc 转换成静态的网页<br />因为#abc是程序处理了ID=50这个变量生成静态页面之后按锚点又做了一次页内链接，所以应该这么做映射<br />http://www.xxx.com/info.asp?id=50#abc转换成http://www.xxx.com/info_50.htm#abc,重写规则如下：<br />RewriteRule /info_(&#92;d+)&#92;.htm#(&#92;d+) /info&#92;.asp&#92;?id=$1#$2 [N,I] </font></p><p><font size=2>注意：以前在Window 2000 IIS5.0一直使用ISAPI_Rewrite进行动态链接重写HTML静态网址，<br /><br />最近升级到 Widnows 2003 IIS6.0 后，发现ISAPI_Rewrite根本运行不起来，在IIS 6.0里面一直提示“未加载”，后来查了又查，原来是文件的权限问题。<br /><br />IIS 6.0 ISAPI_Rewrite 是在Service帐号下运行的，将数据文件的读写权限给予Service 帐号后，ISAPI_Rewrite 终于可以正常运行了。</font></p></div>]]></description></item>
	<item>
		<title>启用iis的GZIP压缩功能，节省你的服务器带宽</title>
		<link>http://www.xiang6963.cn/bbs/ShowPost.asp?ThreadID=693</link><category>iis</category><author>xiang6963</author><pubDate>2009/9/4 17:48:58</pubDate><description><![CDATA[<div class=content_main><p><font style="FONT-SIZE: 14px">现代的浏览器IE6和Firefox都支持客户端Gzip，也就是说，在服务器上的网页，传输之前，先使用Gzip压缩再传输给客户端，客户端接收之后由浏览器解压显示，这样虽然稍微占用了一些服务器和客户端的CPU，但是换来的是更高的带宽利用率。对于纯文本来讲，压缩率是相当可观的。如果每个用户节约50%的带宽，那么你租用来的那点带宽就可以服务多一倍的客户了。</font></p><p><wbr></wbr></p><p><font style="FONT-SIZE: 14px">IIS6已经内建了Gzip压缩的支持，可惜，没有设置更好的管理界面。所以要打开这个选项，还要费些功夫。</font></p><p><wbr></wbr></p><p><font style="FONT-SIZE: 14px">首先，如果你需要压缩静态文件（HTML），需要在硬盘上建一个目录，并给它“IUSR_机器名”这个用户的写权限。如果压缩动态文件（PHP，asp，aspx）就不需要了，因为它的页面是每次都动态生成的，压缩完就放弃。然后在IIS管理器中，“网站”上面右键－属性，不是下面的某个站点，而是整个网站。进入“服务”标签，选上启用动态内容压缩，静态内容压缩。&nbsp;&nbsp;&nbsp;&nbsp; 给GZIP的临时目录空间不要太大了200MB就够了.</font></p><p><wbr></wbr></p><p><font style="FONT-SIZE: 14px">然后选中网站下面那个服务器扩展，新建一个服务器扩展。名字无所谓，下面的添加文件的路径是：</font></p><p><font style="FONT-SIZE: 14px">c:&#92;windows&#92;system32&#92;inetsrv&#92;gzip.dll，然后启用这个扩展。</font></p><p><font style="FONT-SIZE: 14px">这时候静态内容是可以压缩的，但是对于动态内容，aspx文件却不在压缩范围内。因为默认的可压缩文件并没有这个扩展名。而管理界面中你又找不到可以增加扩展名的地方，这时候只能去修改它的配置文件了。</font></p><p><font style="FONT-SIZE: 14px">在c:&#92;windows&#92;system32&#92;inetsrv&#92;下面有个MetaBase.xml文件，可以用记事本打开，找到IIsCompressionScheme，有三个相同名字的段，</font></p><p><font style="FONT-SIZE: 14px">分别是</font></p><ol><li><font style="FONT-SIZE: 14px"><font face=Verdana>&lt;IIsCompressionScheme Location ="/LM/W3SVC/Filters/Compression/deflate"</font></font> <li><font style="FONT-SIZE: 14px"><font face=Verdana>&lt;IIsCompressionScheme Location ="/LM/W3SVC/Filters/Compression/gzip"</font></font> <li><font style="FONT-SIZE: 14px"><font face=Verdana>&lt;IIsCompressionSchemes Location ="/LM/W3SVC/Filters/Compression/Parameters"</font></font></li></ol><p>&nbsp;</p><p><font style="FONT-SIZE: 14px">第三段不用管它，前两段有基本相同的参数，在这两段的参数HcScriptFileExtensions下面都加上一行aspx，如果你有其它的动态程序要压缩，也加在这里。HcDynamicCompressionLevel改成9，（0－10，9是性价比最高的一个）。</font></p><p>&nbsp;</p><p>注：</p><ul><li><font face=Verdana><strong>HcFileExtensions</strong></font>指定压缩方案支持的文件扩展名。IIS 只压缩使用指定文件扩展名的静态文件。该设置为空时，不压缩静态文件。 <li><strong>HcScriptFileExtensions</strong> 指出压缩方案支持的文件扩展名。IIS 将压缩使用该属性指定的文件扩展名的动态文件输出。 <li><strong>HcDynamicCompressionLevel </strong>属性指定压缩动态内容时压缩方案的压缩级别。低压缩级别生成稍大一些的压缩文件，但对 CPU 和内存资源的总体影响较小。高压缩级别通常会生成较小的压缩文件，但会占用较多的 CPU 时间和内存。 <li><strong>HcOnDemandCompLevel </strong>属性指定对静态内容进行按需压缩时，压缩方案的压缩级别。低压缩级别生成稍大一些的压缩文件，但对 CPU 和内存资源的总体影响较小。高压缩级别通常生成较小的压缩文件，但是 CPU 和内存的占用率较高。 <li><strong>HcPriority </strong>属性指定分配给特定压缩方案的优先级。如果您在安装 IIS 时安装了多个压缩方案，并且客户端浏览器在 Accept-Encoding 标头中注明可以处理多个压缩方案，IIS 将使用 <strong><noloc></noloc>HcPriority</strong> 指定的优先级数字来决定为请求使用哪个方案。这种情况下，IIS 会使用具有最高优先级数字的匹配方案。 有效的优先级数字范围从 1 到 10。一般来说，如果在 IIS 上安装了多个压缩方案，您应该为每个压缩方案指派一个不同的优先级数字。</li></ul><p><wbr></wbr></p><p><font style="FONT-SIZE: 14px">然后需要重启一下IIS服务，就可以体会到压缩后的速度了。不过通常可能不会有太明显的感觉，可以用</font><font style="FONT-SIZE: 14px" color=#a91718>http://www.port80software.com/tools/compresscheck.asp</font>(英文)<font face=Verdana><font face=Verdana color=#a91718>http://gzip.zzbaike.com/</font>（中文）</font><font style="FONT-SIZE: 14px">这个页面来检查你的网页是否压缩过了，以及压缩比和加快的速度。整个过程对CPU的占用基本上感觉不出来。</font></p></div><p>详细配置过程：</p><p><span class=Apple-style-span style="WORD-SPACING: 0px; FONT: 14px/21px 宋体; TEXT-TRANSFORM: none; COLOR: rgb(42,42,42); TEXT-INDENT: 0px; WHITE-SPACE: normal; LETTER-SPACING: normal; BORDER-COLLAPSE: separate; orphans: 2; widows: 2; webkit-border-horizontal-spacing: 2px; webkit-border-vertical-spacing: 2px; webkit-text-decorations-in-effect: none; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0"></span><p>&nbsp;</p><p></p><p>1、Internet信息服务(IIS)管理器-&gt;右击"网站"-&gt;"属性"-&gt;"服务"，在"HTTP压缩"框中选中"压缩应用程序文件"和"压缩静态文件"，设置"临时目录"和"临时目录的最大限制"；<em><strong>[千万别设置成不限制,因为文件不断增长,将严重影响网页打开速度,限制成200到500MB左右就可以了]</strong></em></p><p>2、Internet信息服务(IIS)管理器-&gt;右击"Web服务扩展"-&gt;"增加一个新的Web服务扩展..."-&gt;"新建Web服务扩展"，输入扩展名"HTTPCompression"，在"要求的文件"中通过浏览，找到：C:&#92;WINDOWS&#92;system32&#92;inetsrv&#92;gzip.dll，选中"设置扩展状态为允许"；</p><p>3、这步很重要，请看准：<br /><br />◆　使用记事本等打开C:&#92;Windows&#92;System32&#92;inetsrv&#92;MetaBase.xml(先备份),找到Location ="/LM/W3SVC/Filters/Compression/gzip";</p><p>◆　压缩动态文件，则将 HcDoDynamicCompression 设为"TRUE"，并在HcScriptFileExtensions中增加您要压缩的动态文件后缀名，如asp；<br /><br />◆　压缩静态文件，则将 HcDoStaticCompression 和 HcDoOnDemandCompression 设为 "TRUE"，并在 HcFileExtensions 中增加需要压缩的静态文件后缀名，如xml、css等；<br /><br />◆　HcDynamicCompressionLeve<wbr></wbr>l 和 HcOnDemandCompLevel 表示需要的压缩率，数字越小压缩率越低，一般在10左右比较好一些吧。</p><p>4、打开"开始"-&gt;“控制面板”"管理工具"-&gt;"服务"，停止"IIS Admin Service"，注意与其连带的两个服务，要记住名称，一会儿你还需要重新启动；</p><p>5、保存MetaBase.xml文件，重新启动IIS。</p><p>6、测试HTTP压缩效果，测试网站：Pipeboost。如果验证结果显示的是：Compression status: Compressed ，即表示此次操作已经成功。</p>]]></description></item>
	<item>
		<title>如何制作一个&#32;https&#32;网站？IIS配置HTTPS服务的方法</title>
		<link>http://www.xiang6963.cn/bbs/ShowPost.asp?ThreadID=685</link><category>iis</category><author>piaoling</author><pubDate>2009/8/28 18:08:45</pubDate><description><![CDATA[第一步：在IIS启动SSL<br />方法只要3步： <p>1.&nbsp;下载 IIS 6.0 Resource Kit Tools: <a target=_blank href="http://www.microsoft.com/downloads/details.aspx?FamilyID=56fc92ee-a71a-4c73-b628-ade629c89499&amp;DisplayLang=en"><font color=#1d58d1>http://www.microsoft.com/downloads/details.aspx?FamilyID=56fc92ee-a71a-4c73-b628-ade629c89499&amp;DisplayLang=en</font></a><br />2.&nbsp;安装.<br />3.&nbsp;“All Programs-&gt;IIS Resources-&gt;SelfSSL-&gt;SelfSSL”,&nbsp;在命令行中键入 “selfssl”,&nbsp;回答 “y”, and you are done.<br /></p><p>现在你试试在browser里访问：<a target=_blank href="https://localhost/"><font color=#1d58d1>https://localhost</font></a>，你会发现会出现一个窗口询问是否接受一个untrusted certificate，选Yes, and you are in a safe channel now.</p><p>第二步：</p><h3>如何制作一个 https 网站？IIS配置HTTPS服务的方法</h3><br /><p><strong>https是什么？</strong></p><p>HTTPS（Secure Hypertext Transfer Protocol）安全超文本传输协议 .<br /><br />它是由 Netscape开发并内置于其浏览器中，用于对数据进行压缩和解压操作，并返回网络上传送回的结果。HTTPS实际上应用了Netscape的完全套接字层（SSL）作为HTTP应用层的子层。（HTTPS使用端口443，而不是象HTTP那样使用端口80来和TCP/IP进行通信。）SSL使用40 位关键字作为RC4流加密算法，这对于商业信息的加密是合适的。HTTPS和SSL支持使用X.509数字认证，如果需要的话用户可以确认发送者是谁。。 <br /><br />https是以安全为目标的HTTP通道，简单讲是HTTP的安全版。即HTTP下加入SSL层，https的安全基础是SSL，因此加密的详细内容请看SSL。 <br /><br />它是一个URI scheme(抽象标识符体系)，句法类同http:体系。用于安全的HTTP数据传输。https:URL表明它使用了HTTP，但HTTPS存在不同于HTTP的默认端口及一个加密/身份验证层（在HTTP与TCP之间）。这个系统的最初研发由网景公司进行，提供了身份验证与加密通讯方法，现在它被广泛用于万维网上安全敏感的通讯，例如交易支付方面。 <br /><br />限制 <br />它的安全保护依赖浏览器的正确实现以及服务器软件、实际加密算法的支持. <br /><br />一种常见的误解是“银行用户在线使用https:就能充分彻底保障他们的银行卡号不被偷窃。”实际上，与服务器的加密连接中能保护银行卡号的部分，只有用户到服务器之间的连接及服务器自身。并不能绝对确保服务器自己是安全的，这点甚至已被攻击者利用，常见例子是模仿银行域名的钓鱼攻击。少数罕见攻击在网站传输客户数据时发生，攻击者尝试窃听数据于传输中。 <br /><br />商业网站被人们期望迅速尽早引入新的特殊处理程序到金融网关，仅保留传输码(transaction number)。不过他们常常存储银行卡号在同一个数据库里。那些数据库和服务器少数情况有可能被未授权用户攻击和损害。 <br /><br /><br />TLS 1.1之前 <br />这段仅针对TLS 1.1之前的状况。因为SSL位于http的下一层，并不能理解更高层协议，通常SSL服务器仅能颁证给特定的IP/端口组合。这是指它经常不能在虚拟主机(基于域名)上与HTTP正常组合成HTTPS。 <br /><br />这一点已被更新在即将来临的TLS 1.1中—会完全支持基于域名的虚拟主机。 <br /></p><hr><p>为 Web 服务器配置 SSL <br />要在 IIS 中启用 SSL，首先必须获得用于加密和解密通过网络传输的信息的证书。IIS 具有自己的证书请求工具，您可以使用此工具向证书颁发机构发送证书请求。此工具简化了获取证书的过程。如果您使用的是 Apache，则必须手动获取证书。 <br />在 IIS 和 Apache 中，您都会收到来自证书颁发机构的证书文件，此文件必须配置在计算机上。Apache 使用 SSLCACertificateFile 指令读取其源文件中的证书。而在 IIS 中，您可以使用网站或文件夹属性的目录安全性选项卡来配置和管理证书。 <br /><br />您可以将证书从 Apache 迁移到 IIS；但是 Microsoft 建议您重新创建或获取一个新的 IIS 证书。 <br /><br />此过程假定您的站点已经具备了证书。</p><p>&nbsp;1. 以管理员身份登录到 Web 服务器计算机。 <br />2. 单击开始，指向设置，然后单击控制面板。 <br />3. 双击管理工具，然后双击 Internet 服务管理器。 <br />4. 从左窗格中的不同服务站点的列表中选择网站。 <br />5. 右键单击希望为其配置 SSL 通信的网站、文件夹或文件，然后单击属性。 <br />6. 单击目录安全性选项卡。 <br />7. 单击编辑。 <br />8. 如果希望网站、文件夹或文件要求 SSL 通信，请单击需要安全通道 (SSL)。 <br />9. 单击需要 128 位加密以配置 128 位（而不是 40 位）加密支持。 <br />10. 要允许用户不必提供证书就可以连接，请单击忽略客户证书。 <br /><br />或者，如果要让用户提供证书，请使用接受客户证书。 <br />11. 要配置客户端映射，请单击启用客户证书映射，然后单击编辑将客户证书映射到用户。 <br /><br />如果配置了此功能，可以将客户证书分别映射到 Active Directory 中的每个用户。可以使用此功能以根据用户访问网站时提供的证书自动识别用户。可以将用户一对一映射到证书（一个证书标识一个用户），或者将许多证书映射到一个用户（根据特定的规则，对照证书列表来匹配特定的用户。第一个有效的匹配项成为映射。） <br />12. 单击确定。 <br /><br /></p><p><hr></p><p>下面就要为各位读者介绍如何通过IIS证书向导配置我们需要的证书文件。（From:it168）<br /><br />第一步：通过“管理工具”中的IIS管理器启动IIS编辑器。<br /><br />第二步：在默认网站上点鼠标右键选择“属性”。（如图11）<br />&lt;img src="http://www.aspxuexi.com/up_files/image/2007-9-4/37874441.jpg" onload="javascript:if(this.width  alt=" ? />550)this.style.width=550; if(this.height&gt;550)this.style.width=(this.width*550)/this.height;"&gt;<br /><br />图11<br /><br />第三步：在默认网站属性窗口中点“目录安全性”标签，然后在安全通信处点“服务器证书”按钮。（如图12）<br />&lt;img src="http://www.aspxuexi.com/up_files/image/2007-9-4/37874442.jpg" onload="javascript:if(this.width  alt=" ? /></p><p>图12<br /><br />第四步：系统将自动打开WEB服务器证书向导。（如图13）<br />&lt;img src="http://www.aspxuexi.com/up_files/image/2007-9-4/37874443.jpg" onload="javascript:if(this.width  alt=" ? /></p><p>图13<br /><br />第五步：服务器证书处选择“新建证书”，然后下一步继续。（如图14）<br />&lt;img src="http://www.aspxuexi.com/up_files/image/2007-9-4/37874444.jpg" onload="javascript:if(this.width  alt=" ? /></p><p>图14<br /><br />第六步：延迟或立即请求处选择“现在准备证书请求，但稍后发送”。（如图15）<br />&lt;img src="http://www.aspxuexi.com/up_files/image/2007-9-4/37874445.jpg" onload="javascript:if(this.width  alt=" ? /></p><p>图15<br /><br />第七步：设置证书的名称和特定位长，名称保持默认网站即可，在位长处我们通过下拉菜单选择512。（如图16）<br />&lt;img src="http://www.aspxuexi.com/up_files/image/2007-9-4/37874446.jpg" onload="javascript:if(this.width  alt=" ? /></p><p>图16<br /><br />小提示：位长主要用于安全加密，位长越来则越安全，不过传输效率会受到一定的影响，网站性能也受影响。一般来说选择512已经足够了。<br /><br />第八步：输入单位信息，包括单位和部门。（如图17）<br />&lt;img src="http://www.aspxuexi.com/up_files/image/2007-9-4/37874447.jpg" onload="javascript:if(this.width  alt=" ? /></p><p>图17<br /><br />第九步：在站点公用名称窗口输入localhost。（如图18）<br />&lt;img src="http://www.aspxuexi.com/up_files/image/2007-9-4/37874448.jpg" onload="javascript:if(this.width  alt=" ? /></p><p>图18<br /><br />第十步：地理信息随便填写即可。（如图19）<br />&lt;img src="http://www.aspxuexi.com/up_files/image/2007-9-4/37874449.jpg" onload="javascript:if(this.width  alt=" ? /></p><p>图19<br /><br />第十一步：设置证书请求的文件名，我们可以将其保存到桌面以便下面步骤调用方便，保存的文件名为certreq.txt。（如图20）<br />&lt;img src="http://www.aspxuexi.com/up_files/image/2007-9-4/378744410.jpg" onload="javascript:if(this.width  alt=" ? /></p><p>图20<br /><br />第十二步：完成了IIS证书向导配置工作，并按照要求将相应的证书文件保存到桌面。（如图21）<br />&lt;img src="http://www.aspxuexi.com/up_files/image/2007-9-4/378744411.jpg" onload="javascript:if(this.width  alt=" ? /></p>]]></description></item>
	<item>
		<title>如何做MX邮件交换记录</title>
		<link>http://www.xiang6963.cn/bbs/ShowPost.asp?ThreadID=657</link><category></category><author>piaoling</author><pubDate>2009/8/12 11:25:33</pubDate><description><![CDATA[<table cellSpacing=0 cellPadding=0 width="98%" align=center border=0><tbody><tr><td align=middle bgColor=#f5f5f5 height=26><font face=宋体 color=#0e79bf><strong>如何做MX邮件交换记录？</strong></font></td></tr><tr><td><p><font face=宋体>如果您需要使用您的域名来访问企业邮局，那么您应该作MX记录解析，也就是邮件交换记录解析。<br /><br />现以域名jpjz.net为例，要使mail.jpjz.net 能够正常收发信，应该执行两个操作，一个是把mail.jpjz.net解析到企业邮局所在服务器的IP地址上（假设为203.171.239.41），另一个则是增添邮件交换记录。<br /><br />1&gt;首先请进入域名管理。（</font><a target=_blank href="http://mydns.xinnet.com/pagemydns/authpage.php"><font face=宋体>http://mydns.xinnet.com/pagemydns/authpage.php</font></a><font face=宋体> 输入域名xisky.net 和域名密码进入后,点"</font><a target=_blank href="http://www.paycenter.com.cn/cgi-bin/udns?Number=1"><font face=宋体>MyDNS功能</font></a><font face=宋体>"）</font></p><p><br /><font face=宋体>2&gt;我们首先来解析mail.jpjz.net到IP：203.171.239.41。 点击"添加新的A记录"，然后在然后在第一个输入框内输入"mail",第二个框输入"203.171.239.41"如下图所示：</font></p><p><font face=宋体><img alt=如何作邮件交换记录(MX)? src="http://www.xisky.net/help/coolray/UploadFile/20061219155825490.jpg" border=0 /></font></p><p><font face=宋体>3&gt;再点"提交"，该解析就完成了，该解析实时生效。<br /><br />4&gt;接下来需要添加邮件交换记录，若没有添加邮件交换记录，邮局是不能收到信的。点击"</font><a target=_blank href="http://mydns.xinnet.com/cgi-bin/mydnsinfo"><font face=宋体>添加新的邮件记录</font></a><font face=宋体>"，第一个输入框（主机名）请保持为空表示jpjz.net本身;第二个输入框（目标主机）输入:mail.jpjz.net;第三个输入框（优先级）:10(10是最高级)，最后一项TTL默认为3600。如下图所示：</font></p><p><font face=宋体><img alt=添加邮件交换记录 src="http://www.xisky.net/help/coolray/UploadFile/20061219155951950.jpg" border=0 /></font></p><p><font face=宋体>5&gt;点提交后，就完成了所有操作。<br /><br />这样，邮件交换记录就做好了，如下图所示，您就可以用mail.xisky.net来访问企业邮局了。</font></p><p><font face=宋体>=========================================</font></p><p><font face=宋体>你要用mail.xxx.com访问的话，就的添加mail.xxx.com的A记录，和xxx.com的MX记录，如果你要能用别的地址访问的话，仅添加xxx.com的MX记录就可以了。</font></p><p><font face=宋体>=========================================</font></p><p><font face=宋体>DNS三个记录，A，MX，CHNAME，作用分别是域名到IP，邮件交换记录，别名记录，如果用邮件，只要设MX记录即可。</font></p></td></tr></tbody></table><p>&nbsp;</p><p>&nbsp;</p><p>C:&#92;&gt;nslookup -q=mx sina.com.cn<br />Server:&nbsp; linedns.bta.net.cn<br />Address:&nbsp; 202.106.196.115</p><p>Non-authoritative answer:<br />sina.com.cn&nbsp;&nbsp;&nbsp;&nbsp; MX preference = 10, mail exchanger = freemx1.sinamail.sina.com.cn<br />sina.com.cn&nbsp;&nbsp;&nbsp;&nbsp; MX preference = 10, mail exchanger = freemx2.sinamail.sina.com.cn<br />sina.com.cn&nbsp;&nbsp;&nbsp;&nbsp; MX preference = 10, mail exchanger = freemx3.sinamail.sina.com.cn</p><p>如果所要查的某域名的MX记录不存在，则出现与以下类似的提示： <br />C:&#92;&gt;nslookup&nbsp; -q=mx sina.com.cnc<br />Server:&nbsp; linedns.bta.net.cn<br />Address:&nbsp; 202.106.196.115</p><p>*** linedns.bta.net.cn can&#39;t find sina.com.cnc: Non-existent domain</p>]]></description></item>
	<item>
		<title>在打sp4补丁时遇到指定的实例名称无效</title>
		<link>http://www.xiang6963.cn/bbs/ShowPost.asp?ThreadID=656</link><category>数据库</category><author>piaoling</author><pubDate>2009/8/12 10:45:19</pubDate><description><![CDATA[<font color=#0000ff>的系统是 xp 加 sql2000, 在打sp4补丁时遇到指定的实例名称无效。<br /></font>今过一番研究发现了解决方法。<br /><br />安装前，修改 setup.ini 文件。<br /><br /><font face=宋体>INSTANCENAME="实例名"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />SAPWD= sa密码 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />SECURITYMODE="SQL" <br />USEDEFAULTSAPWD <br />DISABLENETWORKPROTOCOLS=0 <br /><br />例如：<br /></font><font face=宋体>[Options] <br />INSTANCENAME="James"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />SAPWD=&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />SECURITYMODE="SQL" <br />USEDEFAULTSAPWD <br />DISABLENETWORKPROTOCOLS=0 <br /></font>]]></description></item>
	<item>
		<title>sql&#32;server&#32;2005把一个数据库导出为sql&#32;2000</title>
		<link>http://www.xiang6963.cn/bbs/ShowPost.asp?ThreadID=652</link><category></category><author>piaoling</author><pubDate>2009/8/10 17:25:32</pubDate><description><![CDATA[因为数据库附加到2005的时候, 数据库文件已经自动升级到2005, 所以在2000下是无法再附加的(没有向上兼容的)直接restore或附加是不行的, 用脚本+导数据肯定没有问题。 <br />2005转到2000的步骤步骤 <br />1. 生成for 2000版本的数据库脚本 <br />2005 的manger studio <br />-- 打开"对象资源管理器"(没有的话按F8), 连接到你的实例 <br />-- 右键要转到2000的库 <br />-- 任务 <br />-- 生成脚本 <br />-- 在"脚本向导"的"选择数据库"中, 确定选择的是要转到2000的库 <br />-- 勾选"为所选数据库中的所有对象编写脚本" <br />-- 在接下来的"选择脚本选项"中, 找到"为服务器版本编写脚本"项, 选择"SQL Server 2000" <br />-- 其他选项根据需要设置 <br />-- 最后把脚本保存到一个 .sql 脚本文件 <br /><br />2. 在2000中创建目标数据库 <br />在查询分析器(或2005的manger studio在打开脚本文件), 连接到SQL Server 2000,执行上面生成的脚本.以创建一个新的数据库 <br /><br />3. 将数据从2005导到2000 <br />2005 的manger studio <br />-- 打开"对象资源管理器"(没有的话按F8), 连接到你的实例 <br />-- 右键要转到2000的库 <br />-- 任务 <br />-- 导出数据 <br />-- 在"SQL Server 导入和导出向导"的"选择数据源"步骤中, 确定选择的是要导出的数 据库 <br />-- 在"选择目标"步骤中, 连接到 2000, 并选择步骤2新建的库 <br />-- 在"选择源表和源视图"中, 选择所有的表 <br />-- 最后完成 ]]></description></item>
	<item>
		<title>解决XP下连接数为10的限制：共享连接数、iis连接数、</title>
		<link>http://www.xiang6963.cn/bbs/ShowPost.asp?ThreadID=648</link><category>iis</category><author>piaoling</author><pubDate>2009/8/6 09:50:47</pubDate><description><![CDATA[<p><font color=#ff0000>一、局域网打印共享10用户限制破解</font></p><p>连接打印机的电脑是装的XP系统或者2000系统，打印时有些机子总会显示连接数达到最大值，甚至连不上局域网！这是因为xp或2000最多只能连接10台电脑。有人说上网下载个补丁就行，经测试对打印机连接数是无效的，有人说换个server版，但有时打印机偏偏没有支持server的驱动，这时，有没有办法在不装server版系统的情况下，使电脑的连接数能超过10，让打印机能正常打印！<br /><br />A、软件方法：下载个<a target=_blank href="http://yxx163.qupan.com/3630084.html" target=_blank><font color=#006b77>NTSwitch</font></a>，把系统换成server版，本人用过，成功1次，失败一次。所以，要用的朋友先用ghost做好系统备份。<br />B、清除方法：在做这份工作之前，请查看您的电脑是不是通过路由器上的DHCP功能分配的IP，若是的话，<font color=#ff6600>强烈建议您把连接打印机上的那台电脑取消它自动获得IP地址</font>，手动加入一个固定的IP。<br /><br />详细步骤如下：<br />1、打开记事本（开始---&gt;程序---&gt;附件---&gt;记事本）；<br />2、输入" <font color=#000080>net session /delete /y</font> "的清除连接数命令，另存为：<font color=#000080>Print.bat</font> ；<br />3、打开"控制面板"对话框，依次进入"性能和维护"→"任务计划"标签，在显示的"任务计划"页面内，双击"添加任务计划"按钮，此时就会"任务计划向导"对话框。单击"下一步"按钮，进入到"任务计划运行程序"界面，我们从中单击"浏览"按钮，在弹出的"打开"对话框内，找到刚才建立的批处理文件，并且将其载入到准备运行制定该任务处。然后在其下方设置该程序执行的时间，例如选择"每天"单选框，单击"下一步"按钮，起始时间根据笔者上班的实际情况，更改为8点30分，而运行这个任务为每天，并且起始日期保持默认当天。而后单击"下一步"按钮，输入管理员用户账号和密码，直到完成即可。<br />4、此时还会自动弹出的新界面，我们在其内部选择"日程安排"，单击"高级"就可进入到"高级计划选项"对话框，接下来从中勾选"重复任务"复选框，并且在下方设置每隔多长时间清除一次连接数，请根据局域网平常使用打印机的次数来定，如笔者60个主机使用打印机次数不是很频繁，所以设定为8分钟。另外下方持续时间设置则为打印机每天使用的时间，例如10个小时，最后单击"确定"按钮使以上设置生效。这样系统会根据你所指定计划任务，按时执行所建立清除打印连接数命令，从而可以免去我们手动来回清空，打印连接数的操作。</p><p>C、硬件解决：购买一个打印服务器，它的最大连接数有32个之多。</p><p><font color=#ff0000>二、局域网打印共享10用户限制破解</font></p><p><font color=#000000>在自己机器上做网站的朋友都知道XP-P的连接数是有限制的，限制是10个线程，想要突破这个限制只能靠MetaEdit这个软件，而很多朋友不知道怎么安装这个软件。下面我来说一下，首先当然是安装IIS了，这里就不做说明了!再到控制面版里填加一个英文的用户，权限是管理员！用这个用户就能顺利安装MetaEdit了(如果你的用户名是中文的就会显示“系统找不到指定途径"而软件不会被安装)，安装结束后运行MetaEdit，在窗口的左边将树展开至LM &#92; W3SVC，直接在W3SVC文件夹上单击，选择右边列表中Name为MaxConnections的项，双击后，出现对话框：在最后Data的文本框中默认的是10，这就是Windows XP专业版IIS默认设置的最大客户端连接数了，现在你可以改变这个默认值了，我把它改为10000，(这里有个争论，有的网友说最大的连接数只能到40，具体体现在W3SVC下面的名称1的文件上，单击一下看右边NAME为maxconnections项，双击打开其键值只能到40)。因为网速的问题我没有做测试,希望有条件的朋友帮忙测试一下！据说Win2000上的IIS客户端连接数最大为2000000000<br />最新版本MetaEdit2.2地址：<a target=_blank href="http://www.onlinedown.net/soft/31693.htm" target=_blank><font color=#006b77>http://www.onlinedown.net/soft/31693.htm</font></a></font></p><p><font color=#ff0000>三、去XP (tcpip.sys)10个连接数限制补丁</font></p><p><font color=#000000>TCP半开连接数破解有两种方式：一是内存修改法，二是文件修改法。</font></p><p><font color=#000000>文件修改，可以使用比特精灵提供的小工具。下载：<a target=_blank href="http://yxx163.qupan.com/3630090.html" target=_blank><font color=#006b77>http://yxx163.qupan.com/3630090.html</font></a></font></p><p><font color=#000000>内存修改，可以使用TCP-Z，做的很不错的一个工具，可以查看当前计算机的文件是否已经破解、当前半开链接的数目。下载：<a target=_blank href="http://yxx163.qupan.com/3630109.html" target=_blank><font color=#006b77>http://yxx163.qupan.com/3630109.html</font></a></font></p>]]></description></item>
	<item>
		<title>在windows2003下安装Microsoft&#32;SQL&#32;Server2000企业版后配置客户端OD</title>
		<link>http://www.xiang6963.cn/bbs/ShowPost.asp?ThreadID=617</link><category></category><author>xiang6963</author><pubDate>2009/6/3 13:50:9</pubDate><description><![CDATA[<p>&nbsp;&nbsp;&nbsp;&nbsp; 以前我一直用XP机器安装SQL Server2000个人版来调试程序，后来在项目中，客户要求在Windows2003下安装SQL Server2000企业版，安装完成后并打了sp3的补丁，但发现虽然企业管理器中数据库实例正常运行，但客户端主机配置ODBC无论如何也连不上数据库，安装数据库的机器上虽然配通了ODBC,但是配置ODBC数据源时，服务器名，客户端配置窗口的服务器别名及服务器名称都是主机名&#92;数据库实例名的格式，直接使用主机名或IP地址是不行的，安装了sql server的sp4补丁后，发现可以直接使用主机名或IP地址来配置服务器名称，不需要用主机名&#92;数据库实例名的格式。客户端配置ODBC可以正常连上数据库了(测试数据源时显示测试成功)。我写了一段JSP测试脚本也能正常从数据库取数据了。<br />&nbsp;&nbsp;&nbsp; 如果大家在windows2003下安装sqlserver 2000企业版本遇到ODBC连接不成功的话可参考下面的步骤（我只简单说一下重点内容）:<br />(1)安装时选择企业版，在安装过程中最好自己指定一个数据库实例名，不要使用默认，这样能记住自己配置的TCP/IP端口。<br />(2)在安装过程中要选中TCP/IP,并配置一个端口号，例如1433。<br />(3)安装数据库服务器完成后再安装Analysis Service(好象是安装sqlserver2000的sp3所必须的。)<br />(4)然后安装sp3.<br />(5)安装完sp3我是重新启动了机器，在客户端机器配置ODBC连不上数据库，然后就装了sp4 <br />(6)sp4装完后重启动机器,启动sql server的服务管理器（应已自动启动），打开企业管理器，如果发现sqlserver组中的数据库实例没启动则点击+号进行连接，连接完+后右面应该显示带绿色箭头的图标，我想连接成功后在可以配置ODBC,如果你的机器反复安装了sqlserver可能sqlserver组中没有显示出你刚才安装的实例则需要手工添加一下。<br />(7)然后在客户机（最好不要在数据库服务器的机器上配置ODBC,因为用另外一个机器配置ODBC能看出你安装的是否有问题，有时数据库本机的ODBC能连上数据库，但换另外的机器就不行了）安装ODBC,注意选择TCP/IP,并配置你安装时使用的端口号，不选择动态决定端口。最后测试一下是否通过。</p><p>总结：(1)解决问题的关键是我最后安装了sp4,我不太清楚直接安装sp4，不安装sp3行不行，我是先安装了sp3后再装了sp4的。<br />(2)有人说数据库主机名要大写，我不知道是否一定是这样，我安装的服务器的主机名是大写的，感觉大小写应该是无所谓的。<br />(3)以前没有在2003下安装过，一直没有安装sp4的念头，想不到还是安装了sp4后问题才得以解决。</p><p>&nbsp;</p><p><a target=_blank href="http://blog.csdn.net/baozhengw/archive/2007/10/11/1820161.aspx"></a>&nbsp;</p>]]></description></item></channel></rss>