存档

‘所谓技术’ 分类的存档

整合开发的新思路

2007年1月30日 小李刀刀 12 条评论

最后一个整合开发的作品是PDO统一接口,这个方案解决了多系统通行注册、登陆等一系列问题,当时重点考虑的因素之一,包括了尽量不修改各个系统的源代码,不影响后续升级,数据库和程序的独立性等。而统一接口也的确解决了这些问题。 阅读全文…

分类: 所谓技术 标签: , ,

自动识别域名的整合配置文件

2006年12月4日 小李刀刀 15 条评论

  三方整合接口配置的时候,最容易出现问题就是各个程序的配置文件的修改了,很多网友都是在这上面出错。比如下面这几句:

Const API_Urls = "博客@@http://Localhost/oblog4/api/API_Response.asp"  

Const DvApi_Urls = http://localhost/cms/API/API_Response.asp

Const strTargetUrls = "http://localhost/cms/API/API_Response.asp"

  整合因为使用了xmlhttp,使得使用相对路径而不使用完整URL不可行了。但是这样一来,也限制了整合的域名。

  随着双线空间、镜像站点的越来越广泛,原来的整合配置已经不能再满足需要。有网友提出这个问题,我当时给了一个方案,就是动态获取用户访问的域名,然后用到整合配置中去。当时没有做测试,也没有深入。

  今天在动易起航教师里,又遇到网友提出这个问题。我也正好想测试和解决一下这个问题,就在本机进行了简单的测试。结果整合成功。下面讲解一下:

  首先,原理就是把原来的配置文件中的接口路径定义由常量定义改为变量,这样支持在变量赋值中使用另外的变量。然后,我们新建一个变量用来存储ServerVariables里读取的Server_Name变量。再把这个变量赋值到接口路径定义中去。也就是下面用红色标记出来的部分:

Const API_Urls = "博客@@http://www.domain.com/oblog4/api/API_Response.asp"  

Const DvApi_Urls = "http://www.domain.com/cms/API/API_Response.asp"

Const strTargetUrls = "http://www.domain.com/cms/API/API_Response.asp"

这部分就是要动态获取的部分。

以动易的为例,原来是

Const API_Urls = ……..

改成

Dim API_Urls
API_Urls = ……..

我们首先定义一个存储用户访问的域名的变量:

Dim strSiteRoot

然后从ServerVariables集合众获取该变量:

strSiteRoot = Request.ServerVariables("SERVER_NAME")

最后把变量用到接口路径定义中去:

Dim API_Urls
API_Urls = "论坛@@http://" & strSiteRoot & "/bbs/dv_dpo.asp"

其它两个程序的接口配置,也按同样原理做即可。

下面是修改好的三方整合配置文件供参考:

点击下载此文件

分类: 所谓技术 标签:

遇到一个奇怪编码问题

2006年11月5日 小李刀刀 1 条评论

  在动易2007的留言管理后台表现层开发中,遇到一个怪异的问题,添加留言分类的时候,留言分类添加成功后,名称显示为%#23424;这样的编码,把所有的输入检测都去掉了还是这样,问开发部的同事,大家都没遇到这个问题。

  开始的时候思路被误导了,总认为是被Unicode编码了,但是怎么想也没有在哪里进行过处理啊,后来在GridView的编辑列里,找到一个“是否以HtmlEncode编码呈现”的选项,设置为true以后,显示正常了,但是从编辑框可以看到还是乱码。受此启发,在BLL层的代码里找到了对留言分类标题进行HTMLEncode编码的操作。删除之后,一切正常了。

  这样一个小错误,困扰了我差不多一个月时间,真是郁闷了。

分类: 所谓技术 标签:

动易接口文件及数据同步工具更新

2006年10月25日 小李刀刀 17 条评论
分类: 所谓技术 标签:

防火墙引起的MSXML超时错误解决办法

2006年10月22日 小李刀刀 1 条评论

  测试环境:Windows Server 2003 + 瑞星防火墙2006 单机版

  问题描述:在禁用瑞星防火墙保护的情况下,三方整合注册登陆测试正常;启用防火墙保护后,从动网登陆出现msxml超时错误提示,无法登陆,防火墙日志中提示两条禁止w3wp.exe访问网络的请求,具体为0.0.0.0:1485 -> 220.164.71.24:80[web] 的请求。关闭防火墙保护,登陆正常,再启用,无法登陆。

  原因描述:由于w3wp.exe的网络请求被禁止,xml数据包不能正常发送到整合接口。

  解决办法:(仅以瑞星防火墙为例)

  [1]在瑞星防火墙的“系统设置”中,选择“规则设置”下的“访问规则”,点击右边的“增加规则”(如图)

  [2]在“常规”选项下,选择程序:“C:windowssystem32inetsrvw3wp.exe”,在“所属类别”选择“系统软件”(可选)

  [3]在“高级”选项中的所有规则选择“放行”。(如图)

  退出设置。

  备注:如果不使用添加访问规则的方式,通过添加IP规则,不论设置任意端口到80的放行规则还是80端口到任意端口的放行规则,均不起作用。其它防火墙环境请参照本文自行设置。

分类: 所谓技术 标签:

解决整合问题的一个特殊案例

2006年8月30日 小李刀刀 10 条评论

  今天做技术支持的时候,有个客户的整合出现一个很怪异的情况:

  动网、动易、博客三方整合,其它所有的都很成功,唯独一点,就是在动易首页注销的时候就出现服务器无响应。

  我直接访问/User/User_Logout.asp退出没有问题,那就是Ajax部分的问题了,于是我访问/User/User_Logout.asp?action=xml,结果发现返回的xml数据包是空的,没有必要的用户名和密钥等信息。

  检查用户的/User/User_Logout.asp,发现和最新版本的文件一致。再检查用户的/JS/checklogin.js文件,除了显示风格的html代码部分有修改,其它的也和最新版本一致。这就奇怪了。

  我让客户把动易的整合暂时禁用,再测试发现一切正常。肯定是/User/User_Logout.asp文件处理xml请求的部分出错了,但是文件本身没错,难道接口有问题?

  我让他把动易的/API/API_Config.asp发给我,结果发现这个文件是旧版本的,他告诉我是4月22日下载的。换成SP3的文件(该文件是在SP2的时候更新的)后,问题解决。

SP2以前的API/API_Config.asp文件和SP2以后的文件比较如下:

旧文件

Dim arrAPIUrls
arrAPIUrls = Split(API_Urls,"|")

新文件

Dim arrAPIUrls, arrUrlsSP2
arrUrlsSP2 = "blank"
arrAPIUrls = Split(API_Urls,"|")
Dim tempIndex,tempAPIPath
For tempIndex = 0 To UBound(arrAPIUrls)
    tempAPIPath = Split(arrAPIUrls(tempIndex),"@@")
    arrUrlsSP2 = arrUrlsSP2 & "|" & tempAPIPath(1)
Next
arrUrlsSP2 = Replace(arrUrlsSP2,"blank|","")
arrUrlsSP2 = Split(arrUrlsSP2,"|")

结论:用户在每次升级动易系统以后,不需要单独下载额外的整合接口(除非我在官方论坛单独发布补丁并说明什么情况下需要使用),因为动易的最新整合接口会包含在每次发布的新版本中。也就是动易不需要单独的整合接口文件。

分类: 所谓技术 标签:

再答关于整合后的MSXML错误问题

2006年8月24日 小李刀刀 1 条评论

注意:本文适用于整合已经成功,偶尔出现500错误,提示MSXML错误,或者在本地测试整合成功,传到服务器上后出错的用户。

症状描述(蓝色部分根据用户的服务器情况会有不同,有时候出问题的是动网或者oblog的文件):

错误类型:
msxml3.dll (0×80072EE7)
The server name or address could not be resolved
F:POWEREASYUSER../API/API_Function.asp, 第 290 行

阅读全文…

分类: 所谓技术 标签:

三方整合动易后台删除用户不能同步的临时解决方法

2006年8月1日 小李刀刀 12 条评论

问题描述:整合成功后,在动易后台删除用户时另外两个系统不能同步。而其它所有操作都已正常。

临时方案:修改动网和oblog的接口解决。

动网的修改:

打开动网论坛根目录下的dv_dpo.asp文件,找到147行左右的

D_Users = Split(UserName,",")

修改为:

阅读全文…

分类: 所谓技术 标签: