A8
Request对象错误ASP 0104:80004005不允许操作
老板说编辑有表格的论坛帖子竟然出错了
我看了一下,确实是提示
/bbs/inc/Dv_ClsMain.asp,行 95
Request 对象 错误 ‘ASP 0104 : 80004005′
搜索了一下,原来是这么个错误。跟上传文件大小有关的
这是WIN2003默认只允许上传200K数据的限制。你还没有打开这个限制。
解决方法在帮助中心。认真看看有关WIN2003的设置吧。
结果在自己的电脑上(ASP+IIS+WinXP),上传相同的文件时,又什么错误没有,这就说明问题不是代码的原因,而是服务器的配置问题。在网上Google了一下,提到的大多是metabase.XML这个文件的问题,按上面的说法,进行调整,问题果然解决相关见容如下:
先在服务里关闭iis admin service服务,找到位于 C:\Windows\System32\Inetsrv 中的 metabase.XML 打开,找到ASPMaxRequestEntityAllowed 把他修改为需要的值(如5120000即5M),默认为204800,即200K,然后重启iis admin service服务 。
注意: 有时即使IIS服务停止了,保存文件时还是提示无法保存(原因?我也不太知道),可以这样解决这个问题,设置IIS管理器的网站属性,勾选“允许直接编辑 配置数据库”(好像是这样几个字,具体的我也记不住了)。配置文件设置好后启动IIS服务器,“允许直接编辑配置数据库”这个属性最好还是再改回来。
【技术背景】
在 IIS 6.0 中, AspMaxRequestEntityAllowed 属性指定了一个 ASP 请求(Request)可以使用的最大字节数. 如果 Content-Length 头信息中包含的请求长度超过了 AspMaxRequestEntityAllowed 的值, IIS 将返回一个 403 错误信息.
这个属性值与 MaxRequestEntityAllowed 相似, 但是是针对 ASP 请求的. 假如你知道自己的 ASP 应用只需要处理很少的请求数据, 你可以在 World Wide Web Publishing Service (WWW 发布服务)层级设定全局的 MaxRequestEntityAllowed 属性为 1MB, [...]
弄了一个晚上,终于把火车头的PHPBB web发布模块给弄出来了,我是用英文站测试的
主要是以前在dreamhost申请有app应用,给主域名弄一个论坛,这个论坛的好处是不用钱,而且可以绑米,其他的限制就不知道了
反正玩玩而已,数据的安全什么的懒得管他,只是在落伍发过一次网址,结果N多发帖机就盯上了,只好到后台把BBCODE的URL解释功能关掉,如果以后还碍眼,直接把BBCODE关掉
然后我研究了一下火车头的发布模块,以前弄WORDPRESS模块的时候因为是ET采集器的思路,所以直接在后台传个接口,对传送数据的程序这边就没啥要求了,只要提交上去就可以了
但是现在申请的这个APP却是不可以上传任何接口文件的,没办法,迎着困难而上吧
结果,这个小困难浪费了我一晚上的时间,我首先用火车头的抓包工具抓FORM,但是提示出错,然后我手工一个一个去找imput和textarea
测试了半天,老是说我提交的来路不正确,去下了一个抓包工具Fiddler2,研究了一下随机值,发现有个form_token变来变去
然后郁闷了半天才发现火车头有个“随机值”获取,一切变得豁然开朗
先把form_token抓下来,看看似乎还有两个隐藏域,继续抓creation_time和lastclick
仔细研究了一下发表的FORM,又发现POST的地址有个SID,似乎需要验证什么东西,抓吧抓吧,放到“发表地址后缀”那里
然后其他的相应设置,终于可以测试了,到测试界面,点测试
出现一个奇怪的问题,提交并没成功,而且主题和内容都是空的,想了半天,把测试发送的主题和内容换成数字
当当当当,终于看到了成功的字眼,我看了一下,似乎是由于标题里含有中文,那论坛不接受,所以就变成空的了
用数字或者字母都可以测试成功,剩下的事情就很简单了~找个网站就开始采集吧
漏了一点,登录模式我是用经典的模式登录的,用新的模式似乎老是出问题
恐怕是和SID有关~具体的原因我就不去探究了,目前只要能发表就可以了
最近评论