解除Windows 2003的IIS 6.0文件上传限制

最近刚刚给公司的服务器重新安装了Windows 2003,后来发现有人反映通过WEB界面发送电子邮件的时候,无法正常上传附件,经过我的初步判断,这是由于Windows 2003的IIS 6.0对文件的上传与做了200K的限制,超过这个大小的文件就会上传失败。因为重新安装操作系统后忘记了对这个限制进行修改,呵呵!索性在这里写出来解除这个限制的方法和大家共享。

注意,修改前务必先将IIS服务停止!

找到C:\WINDOWS\system32\inesrv\下的metabase.xml,用计事本打开metabase.xml,找到 ASPMaxRequestEntityAllowed 把他修改为需要的值,默认为204800,即200K。把它修改为20480000(20M),然后重启iis admin service服务遍完成了对于这个限制的解除工作。

关于PHP的Session过期问题

在PHP开发过程中,可能有朋友经常会遇到Session所产生的文件无法自动清除的问题,其实并非真的无法清除,而是有一个概率问题,只要你的站点访问量足够大,那些文件就可以自动被清除掉。如果访问量比较少,又看那些文件不顺眼的话,只要在php.ini里的配置一下即可实现Session文件自动清除的功能,具体配置如下:

找到

session.gc_probability = 1

session.gc_divisor = 1000

上面这两项参数其实就是这个概率,默认情况下是1/1000

将 session.gc_divisor = 1000  改为 session.gc_divisor = 100 即可

如果想达到完全的实时,那么可以把这个参数改为1,这样概率就是100%了,呵呵!^^

关于PHP缓冲控制在IE浏览器下的应用

最近写程序的时候遇到一个问题,就是我用PHP控制浏览器缓冲,试了N次都无法实现想要的效果,具体程序见下面的代码:

<?php
for ($i=0; $i<10; $i++) {
    echo "<BR>".$i;
    flush();
    sleep(1);
}
?>

上面这段程序是实现每隔1秒钟在浏览器上输出一个字符,但实际效果是程序执行完后才把所有字符输出到浏览器上,调试了好几次都不行。在网上搜索了N个技术文章都没有解决这个问题。最后从一篇文章上找到些灵感,那篇文章里写到flush()函数可能在微软IE浏览器的个别版本上不起作用。

阅读更多

SQL Server 2000遇到“用户XX已经存在”解决方案

SQL Server 2000迁移数据库文件后,在建立与原用户名相同的新用户名时,会遇到错误提示:“错误21002:[SQL-DMO]用户xxx已经存在”,这主要是由于“孤立用户”引起的。

孤立帐户的产生一般是将备份的数据库文件拷贝到其它服务器上进行还原时出现的。

解决方法:

使用 sp_change_users_login 进行修复。

步骤1:
exec sp_change_users_login ‘REPORT’
可列出当前数据库中存在的孤立用户

步骤2:
exec sp_change_users_login ‘AUTO_FIX’, ‘用户名’
可自动将用户名添加到syslogins中做为一个登录名

步骤3:
exec sp_change_users_login ‘Update_ONE’, ‘用户名’, ‘登录名’
可将用户名与登录名进行映射

通过上面操作,孤立用户的故障将得到解决。

定时自动释放SQL SERVER占用内存的方法

近日公司服务器频频出现由于内存不足而引起的IIS工作不正常的情况,通过观察,服务器的大部分内存都被SQL SERVER所占用。要想让SQL SERVER释放掉占用的内存,只能通过重新启动MSSQLSERVER服务来实现,SQL SERVER 2000自身并未提供类似的功能。

我联想到可以将停止与启动MSSQLSERVER服务的命令行做成批处理文件,同时结合Windows的“任务计划”功能,来实现定时自动释放SQL SERVER占用内存的方法,做法如下:

第一步,打开记事本,输入下列2行命令

阅读更多

PHP的异常处理范例

<?php
try {
    $error = '这是一个自定义的异常报错信息';
    if (is_dir('./test')) {
        echo 'do sth.';
    } else {
        throw new Exception($error, 123456789); //通过throw语句抛出一个异常报错信息
    }
    echo '如果没有异常才会显示这句话<br>', "\n";
} catch(Exception $err) {
    $err_msg  = "程序出现异常:";
    $err_msg .= $err->getMessage();
    $err_msg .= $err->getCode();
    $err_msg .= "\n<br>";
    echo $err_msg; //显示报错信息和代码
}
echo '继续执行';
?>