症状

上传文件到 Windows  server + IIS 6.0或者IIS7.0 服务器的时候遇到下列错误:

请求对象错误 ‘ASP 0104 : 80004005′

操作被禁止

原因

IIS6.0 和IIS7禁止上传超过 200kB 的文件. 因此你需要修改 IIS 的默认设置。

当然此200k限制仅限无组件上传,如果使用aspupload等上传时不会有此限制。

解决方法

IIS6

首先停止 IIS 服务,之后打开 C:\Windows\System32\Inetsrv 中的 metabase.XML, 并修改 AspMaxRequestEntityAllowed 为你需要的值(例如 1073741824, 1GB)。启动IIS服务。

若你想在iis运行的时候修改其配置文件,则打开iis管理器,打开internet信息服务属性面板,钩选“允许直接编辑配置数据库,允许在iis运行时编辑iis配置数据库配置文件”

IIS7

启动Internet 信息服务(IIS)管理器,选中要修改的站点,选择ASP图标,在限制属性里面找到最大请求实体主机限制,改为你所需要的值。

技术背景

在 IIS 6.0 中, AspMaxRequestEntityAllowed 属性指定了一个 ASP 请求(Request)可以使用的最大字节数. 如果 Content-Length 头信息中包含的请求长度超过了 AspMaxRequestEntityAllowed 的值, IIS 将返回一个 403 错误信息.

这个属性值与 MaxRequestEntityAllowed 相似, 但是是针对 ASP 请求的. 假如你知道自己的 ASP 应用只需要处理很少的请求数据, 你可以在 World Wide Web Publishing Service (WWW 发布服务)层级设定全局的 MaxRequestEntityAllowed 属性为 1MB, 并单独设定 AspMaxRequestEntityAllowed 为一个较小的值.

Godaddy主机禁用了mail函数,故需要用SMTP发邮件。

所以首先安装首先安装WP-Mail-SMTP插件,按照如下设置。

godaddy-wordpress-smtp

注意邮件作者有些邮箱可能不能用,我用的是zw@ourys.com,成功了。之后可以发邮件了,但是评论回复邮件通知需要安装另一个插件:WordPress Thread Comment

切忌,有些发邮件插件重写的mail函数,会导致邮件评论发送不出去,比如Comment Reply Notification插件,我将这个插件发送的header部分去掉,发现可以发送,但是还是有其他问题,所以建议大家用WordPress Thread Comment就可以了。

一、错误标志

wordpress的rss打开异常,CommentLuv里面无文章显示,IE打开有“无效的 xml 声明”的提示等。。

一、错误原因

rss输出时输出了空行,在所有<?php之前和?>之后出现空行,可能出现的地方:

  • 1、wp-rss2.php、wp-atom.php、wp-config.php等配置文件。
  • 2、插件文件中出现空行
  • 3、主题文件中出现空行,最大可能是function.php

一、解决办法

文件很多,当然不好找,所以必须一步一步的测试。

切忌:因为rss不是实时的,所以没做一次测试,请将一篇文章改为草稿,或者改回来,让rss更新。

1、第一步,安装一个Fix rss feed的插件,启用有修复,然后让rss更新,查看是否改好。

2、如果以上不行,禁用所有插件,然后让rss更新,查看是否改好。如果好了,一个一个查找插件原因。

3、如果以上不行,启用默认主题,然后让rss更新,查看是否改好。如果好了查找主题原因。

4、如果以上不行,查看wp-rss2.php、wp-atom.php、wp-config.php配置文件,在所有<?php之前和?>之后是否出现空行,如果有去掉。然后让rss更新,查看是否改好。

 我们知道,在做友情链接的时候,如果用js来调用是不利于seo的,对自己的网站可以少导出链接,但是对其他网站就不公平了。

如是想到了用transfer这个函数调用图片链接和文字链接。

方法如下:

1、分别对jtb_support_linkimages和jtb_support_linktxt数据库表添加字段jtb_lhidden,数据类型请参考其他的数据表。

2、修改common/incfiles/module.asp
第110行下面添加:

  ‘增加对图片链接和文字链接直接升序调用
  Case "link"
        tsqlstr = "select top " & ttopx & " * from " & tdatabase & " where " & tidfield & "<>0"
        tsqlorder =" order by " & tidfield & " asc"
  ‘增加对图片链接和文字链接直接升序调用

然后,新建调用模板,名字linkimages:
          <ul>{$}{$$} 
            <li><a href="{$url}" target="_blank"><img src="{$baseurl}{$image}" alt="{$intro}"></a></li>{$$}{$}  
          </ul>

调用函数:
{$=itransfer(‘link’, ‘linkimages’, ‘topx=60;tnum=48;genre=support/linkimages’)}

文字链接方法类似。
=======================
原理:hidden是itransfer默认用来判断是否调用的字段,asp版本的textlink、….等表中是没有的,所以itransfer调用会出错,添加后就可以直接调用了。

由于2010年推出了1.0final的asp版本,数据库字段改了,所以以前的在线投稿的不能用了,我改了下,适合新版的投稿模版。

投稿地址是contribute.asp。如果大家需要增加比如投稿者姓名等信息,可以在模版里面增加相应的表单,然后在数据库和contribute_config.asp里面增加获取的新的表单值,在后台模版文件里面增加获取的表单值。

新旧版本下载地址:http://zbimbq.bay.livefilestore.com/y1pCDyExudMf-372dBmkio9X98_ocvQbhkLQlcUiOek-M4cULr0OR54gSA710AqG_envE4jhog5zc5-lVv34Ubr4ZBS5H7ai3J-/JTBC%E6%8A%95%E7%A8%BF.rar?download

直接放到网站目录里面,更新下缓存就可以了。

修改网站标题

在语言文件.lng.module里面修改

修改前台页面底部版权信息

在模版头尾模版default_foot里面修改

修改后台版权信息

在语言文件admin.lng.main和admin.lng.admin_config里面修改

修改源代码里面的执行时间版权

细心的读者可以发现在源代码中最底部有<!–JTBC(1.0), Processed in 这样的版权和执行时间标记。

可以在common/incfiles/web.asp第36行中找到,可以将& "<!–JTBC(1.0), Processed in " & tmpspeed & " ms–>"都去掉,也可以留下执行时间。

这样就可以将所有的版权信息去掉了。

一、增加一个上传的js函数。

在common\images\js\manage.js中加入以下函数(根据insert_images()改动而来)

[CODE=JavaScript]
function insert_attachments(strid, strurl, strntype, strtype, strbase,strname)
{
var tstrtype;
if (strtype == -1)
{tstrtype = strntype;}
else
{
var thtype = request[“htype”];
if (thtype == undefined)
{tstrtype = strtype;}
else
{tstrtype = get_num(thtype);}
}
if (tstrtype == 1)
{
itextner(strid, “[url=” + strurl + “]”+strname+”[/url]”);
}
else
{
if (tstrtype == 0)
{
editor_insert(strid, ““+strname+”“);
}
}
}
[/CODE]

二、增加语言节点。

在.lng.lng_config里增加节点attachment,值为自己选(我的是:"附件:下载").修改insert的值为插入图片(方便自己查看),增加insertfile值为插入附件。

三、增加页面调用。

另外在文章manage.jtbc中292行add和423(第一个地方增加之后,第二个行数423可能变为424)行edit相应位置加入<input type="button" class="button" value="{$=itake(‘global.lng_config.insertfile’,’lng’)}" onclick="insert_attachments(‘content’, get_id(‘content_images’).value, {$=ncttype}, -1, ‘{$=get_lrstr(nuri, "/", "leftr")}’,'{$=itake("global.lng_config.attachment","lng")}’)">

JTBC里面默认的编辑器是UUB,html编辑器是tinymce,我们可以修改默认编辑器为html编辑器。

方法是每个频道里的common/incfiles/manage_config.asp文件。

找到语句:If ncttype = -1 Then ncttype = 1 改为 If ncttype = -1 Then ncttype = 0

后面ncttype的值,1为ubb,0为html,2为纯文本

另外我发现tinymce弹出的比如插入表格等都是在新窗口打开,超级不方便,我将它修改为在当前页面弹出层。

方法是增加一个inlinepopups插件。

找到plugins : "table,advhr,advimage, 这句话,修改为plugins : "inlinepopups,table,advhr,advimage,