avinmo 发表于 2009-7-8 12:58:27

关于CI在IIS下,访问偶尔出现404错误问题

我用CI开发了个网站,放在win03,IIS6下运行,配置了rewrite了。一般可以正常访问,但是也偶尔出现"404"错误。出现404频率也比较多。基本上我点二十个连接。。就会出现几次。而且出现404的时候,刷新都没有用。要重新打开一个页面才显示正常的。还有就是系统事件里一直都有警告

警告信息如下:

为应用程序池 '_$_kx0769_new_$_14646967_$_DefaultAppPool_$_tmp' 提供服务的进程在与 World Wide Web Publishing 服务通信时遇到致命错误。进程 ID 为 '7880'。数据字段包含错误号。

。我不知道是不是rewrite的不稳定造成的还是其他什么的原因。 求解

avinmo 发表于 2009-7-8 12:59:31

我的rewrite的配置文件规则如下:

Debug 1
Reload 5000
#Browse LOT
RewriteRule ^/kx0769_new/.*\.php(.*) /kx0769_new/index.php?$1
RewriteRule ^/kx0769_new/(.*) /kx0769_new/index.php?/$1

Hex 发表于 2009-7-8 14:34:29

这肯定是服务器问题了。
请换 apache 吧,我早就不用 IIS 了。或者重装一下 IIS。

avinmo 发表于 2009-7-8 15:23:26

3# Hex

经过一个下午测试。。发现应该不是服务器问题。我把Rewrite去掉了,其他PHP的站运行正常。

后来经过反复调试。发现CI的页面output的cache有问题

这个:$this->output->cache(10);

如果我在一个controllers里写了一个类。 这个函数的构造函数里写了output->cache,然后,在此类里写一个function test(){echo "ok";}

这样的话。 我打开执行这个function的页面。 第一次可能可以输出OK. 但第二次,第三次。。就会空白。 这是BUG?还是???能解析下吗?

avinmo 发表于 2009-7-8 15:23:53

把output->cache屏蔽掉,则正常。 是不是页面缓存的BUG?

avinmo 发表于 2009-7-8 15:38:56

哦。。知道什么原因了。。 原来是需要通过view输出才被缓存。。。

Hex 发表于 2009-7-8 16:11:35

呵呵,貌似你这个问题我也遇到过,不通过视图就不会缓存。
页: [1]
查看完整版本: 关于CI在IIS下,访问偶尔出现404错误问题