ISAPI_Rewrite正式版(非lite版)无效的原因

2010-12-11 19:35| 分类:tech web开发| 标签: | 9,787 次点击

天~已经两个月没写博客了,基本都去Buzz和新浪微博了,博客的更新频率只会越来越低,如有兴趣,可以follow我的新浪微博:http://t.sina.com.cn/tsenfine ,或者follow Buzz:https://www.google.com/profiles/yi.chenfang。我自己也有数月没打开Google Reader了。

因多个web项目需要用到rewrite,而lite版只支持全局的,所以升级了ISAPI为正式第三版,信用卡付款,现在还没没扣款,也还未发注册码。不过有45天试用,先下来用用。

先是备份lite版的httpd.conf文件,然后卸载了lite版的,然后重装。安装好后发现新版确实好用多了,不仅可对单个网站rewrite,而且可对单个文件夹下的文件rewrite,方法跟apache下的.htaccess差不多。但测试了下却发现原来的rewrite规则全都失效了。

于是找原因,首先在自己博客上找,没想到在2008年12月10日和2009年年11月12日都出现过类似的问题,真让我怀疑江恩说的“循环”的存在 : )

ISAPI Rewrite/IIS Rewrite无效的可能原因  2008-12-10

新版ISAPI Rewrite (Rewrite3_0067_Lite)无效的原因 2009-11-12

ISAPI_Rewrite正式版(非lite版)无效的原因 2010-12-10

首先是按以前两篇博客的内容检查了一遍,从IIS的“web服务扩展”到NTFS权限设置都检查过,又是重启IIS又是重启服务器的,但仍旧不行。后来看安装文档中的帮助文件:

一、首先应该检查ISAPI rewrite是否有在运行,方法有两种,一种是根据安装文档中的帮助来检查:

Put the following lines into httpd.conf file:

RewriteLogLevel 9
LogLevel debug

This will create error.log and rewrite.log files by default in the installation directory. If log files are created, this will indicate that ISAPI_Rewrite is running.

另外一种是随便写个规则看有没有在执行来检查。

二、我检查出来是有在运行的,那么打开Helicon Manager.exe,可以直接修改站点根目录下的.htaccess,但我却忘了清空全局的httpd.conf,导致后来调试问题一堆。正确的方法是应该清空全局的,然后把需要的规则写入站点目录下的.htaccess下。

当然我两个站点,一个是可以的,一个却不行,看了帮助文件夹下的:

If rules are working in httpd.conf file but not in other sections or .htaccess files, make sure to include RewriteEngine on directive in every section and .htaccess file. Also remember that rewriting base inside .htaccess files by default is different from httpd.conf. ISAPI_Rewrite automatically strips the local directory prefix from the path when in .htaccess or <Directory> section and applies rules only to the remainder. So if your rules start with a ‘/’ character, this should be removed in .htaccess file in the root folder of web site.

原来是规则不一样,比如像以下这种

RewriteEngine on  
RewriteRule /(\d{1,20}) /product.jsp?pid=$1

需要改成:

RewriteEngine on

RewriteBase /
RewriteRule (\d{1,20}) /product.jsp?pid=$1

这可以去参考帮助文件中的Example。

总结,像这种比较普遍的错误,看软件自带的帮助CHM还是非常有用的,比google出来的更方便更权威。

网站程序迁移要注意的

2008-12-11 18:18| 分类:服务器| 标签: | 2,218 次点击

我需要把一个站点的程序从虚拟主机转移到独立服务器上,按以往的步骤,第一步应该就是修改一下conn.asp的连接字符串,然后马上测试程序能否直接使用。可我这次偷懒了一下,不想改conn连接字串,而是直接换了一个conn文件——即在几个引用了conn.asp的文件中修改<!– #include file="conn.asp" –>为新的<!– #include file="conn_new.asp" –>,想不到就是这一步操作不够规范和严谨导致我调试了整整一天!

原来,我新建的这个conn.asp编码是UTF-8的,而原来的conn.asp编码是GB2312的,而偏偏我的ASP程序中又到处都是On Error Resume Next,所以出错的页面都是空白一片,没有错误提示。

最终用On Error Resume Next真的是害人啊。。提到的方法解决了。

总结,转移程序平台时,要注意两点:
1、尽量不动源代码或修改少量代码,待测试好之后,证明程序是可以进行平台迁移之后,再做必须的程序上修改。这样可以排除服务器的环境问题。如果没测试好就改了程序,最后运行出错那时如何知道是服务器环境的问题还是程序代码问题?
2、因为有编码问题,所以最好不要添加或覆盖任何代码文件,只能修改代码再保存(不能覆盖)。
3、在每个服务器上代码编辑器和编辑器配置也最好统一,比如我在服务器上的UltraEdit新建一个空文档默认用的是UTF-8编码,而在本机上用EditPlus新建默认用的是GB2312,这样就很可能出问题。
4、打开所有的错误提示功能。比如在ASP程序中注释掉:On Error Resume Next;在客户端IE中去掉“友好错误提示”;在IIS应用程序配置中选择“向客户端发送详细的ASP错误信息”(默认已勾选)。

 

 

以下是这次错误的具体调试过程(留给自己看的):

这次引用的conn.asp编码与主文件冲突导致的具体问题是:

1、部分上传页面不能用了;
2、上传不成功按理说至少也得有错误提示,可是什么都没有。这种问题最麻烦,难调试(最后才知道是设置了On Error Resume Next才没有错误提示,冤啊~)。

在用一些简单的上传例子彻底排除了是组件安装的问题后,我选出有问题的页面中最简单的一个页面:musicupload.asp 进行排查。

删掉头部的一些引用设置编码的文件后就可以了,原来是编码的原因。

当时在虚拟主机上时,因为乱码问题,我把整个upload程序统一设置为了gb2312编码,实现方法如下,在每个文件头部添加一句:<!– #include file="codegb.asp" –> codegb.asp里写上编码方式,具体如下:

<%@ CODEPAGE=936%>
<%response.contenttype = "text/html"%>
<%Response.Charset="GB2312"%>
<html xmlns="http://www.w3.org/1999/xhtml" lang="zh-CN">
<head>
<meta http-equiv="content-type" content="text/html; charset=GB2312">
<meta http-equiv="Cache-Control" content="no-cache, must-revalidate">
</head>

本来我在虚拟主机上引用的是GB2312的conn.asp,所以是正常的,可现在在服务器上我引用的是UTF-8的conn.asp,所以就出现了很多不能上传的问题:

  包含<%@ CODEPAGE=936%> 不包含<%@ CODEPAGE=936%>或<%@ CODEPAGE=65001%>
原虚拟主机 可上传、页面正常 可上传、页面乱码
现服务器 不可上传、页面空白 可上传、页面不乱码

 

我重新在一个简单的上传例子中使用了<%@ CODEPAGE=936%> ,可以正常上传。证明只是我写的这个有问题,其他用到aspupload的程序未必有问题。于是把upload的所有页面都改为了UTF-8编码保存,并把引用的codegb.asp改为codeutf.asp,即为:

<%@ CODEPAGE=65001%>
<%response.contenttype = "text/html"%>
<%Response.Charset="UTF-8"%>
<html xmlns="http://www.w3.org/1999/xhtml" lang="zh-CN">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta http-equiv="Cache-Control" content="no-cache, must-revalidate">
</head>

但这样子又会乱码,就是把整个upload文件夹全部转换为UTF-8估计也会有乱码。最后我检查程序时发现了有一句:On Error Resume Next,去掉这句后,再查看网页就提示conn.asp“编码类型不一致”大致的错误,于是立即知道是conn.asp的问题。

实际上,写这个后台upload程序时我还是考虑到迁移的问题的,直接把整个upload文件夹移到服务器上来,直接就可以使用了。

On Error Resume Next真的是害人啊。。

18:01| 分类:服务器| 标签: | 2,447 次点击

一个站点,前台展示页面是一个UTF-8编码,后台程序用的是GB2312。

前台UTF-8,是因为前台用到了大量的Ajax评论,UTF-8方便,不用转码。

后台GB2312,是因为后台有Upload程序,用到了ASPupload组件,当时在虚拟主机上时用UTF-8会出现问题,所以全部就改为了GB2312,现在虽然在服务器上但懒得改回UTF-8,还未测试UTF-8有无问题)

前台和后台放在同一个服务器上,程序分别用两个目录,因为使用同一个数据库,所以我引用了同一个conn.asp文件(前台的那个),但接下来问题一大堆。最可怕的是没有错误提示,出错时只是一个空白页,到最后才发现原来是conn.asp的编码问题。因为ASP程序中写了On Error Resume Next,所以都没有错误提示。

解决办法,注释掉On Error Resume Next,在两个目录下(其实就可以看成两个站点了,前后台程序之间没啥关系)分别放两个conn文件,一个UTF-8编码,一个GB2312编码。让每个站点的根文件夹下都有conn文件,在转移网站程序时也比较方便。

尤其是网上的一些ASP实例,常常用到了On Error Resume Next,然后使用了代码里自己写的错误提示,这样子有的错误也会提示,但没考虑到的错误就不会提示了。如果久没接触ASP,突然用起来很容易忽略这一点,调试起来因为没有错误提示你不会意识这已是个错误!我就是这样,调试了一整天。

另外,这次转移服务器的调试,因为代码中加了On Error Resume Next,除了以上提到的代码编码的错误没有提示外,还有很多错误也都没有提示,比如:上传的文件夹不存在、加水印的组件不支持、文件夹没有更改的权限,这些通通都没提示,调试起来着实浪费时间。

ISAPI Rewrite中正则表达式的应用——URL Rewrite规则

17:15| 分类:web开发 服务器| 标签: | 5,981 次点击

前面提到我配置好了ISAPI Rewrite,其实就是为了实现一个效果,让:www.facepk.com/1 映射到 www.facepk.com/facepk.asp?id=1。因为坐久了腰有点酸,于是躺在床上用UCWEB粗略看了一遍正则表达式30分钟入门教程,写得非常不错,虽然后面都没看懂。不过现在简单的正则表达式应该能看懂并写几句的。

我是在ISAPI Rewrite自带的ReGexTest中测试正则表达式的。只需把rewrite规则写进去再写一段测试文本即可测试,如图:

 image

测试好了就可以写到httpd.conf里了。

总共试了几次:

1、RewriteRule /(\d+) /facepk\.asp\?id=$1 规则的目标太大,所有包含 /数字 的字符串都会被替换,很容易导致同一IIS下其他站点上也进行了正则转换,比如www.xingtan.com/99guiyi.htmlwww.facepk.com/face/20079159254176(8).jpg 都会进行正则转换。

2、RewriteRule /(\d{1,5}) /facepk\.asp\?id=$1 同样目标太大,想到刚开始时看的那个教程,于是加个$,变成:

3、RewriteRule /(\d{1,5})$ /facepk\.asp\?id=$1 就可以了,这个$的意思是必须在/1后马上跟个空字符才进行正则转换。

按理说这么写了之后,www.facepk.com/1www.xingtan.com/facepk/1 会被分别转换为www.facepk.com/facepk.asp?id=1和www.xingtan.com/facepk/facepk.asp?id=1,但实际上只进行了前者的转换。后者并没有,不清楚是什么原因,于是我又加了一条:

RewriteRule /facepk/(\d{1,5})$ /facepk/facepk\.asp\?id=$1

变成了:
RewriteRule /(\d{1,5})$ /facepk\.asp\?id=$1
RewriteRule /facepk/(\d{1,5})$ /facepk/facepk\.asp\?id=$1

但这样子www.facepk.com/1可以生效,而www.xingtan.com/facepk/1 仍无法生效。删了第一句后,www.xingtan.com/facepk/1 后者就可以了。换了一下顺序两个规则就都生效了。估计是两个规则冲突造成的,但不清楚是什么冲突,不去管了,最终可行的表达式:

RewriteRule /facepk/(\d{1,5})$ /facepk/facepk\.asp\?id=$1
RewriteRule /(\d{1,5})$ /facepk\.asp\?id=$1

ISAPI Rewrite/IIS Rewrite无效的可能原因

2008-12-10 6:36| 分类:服务器| 标签: | 8,060 次点击

对SEO的追求有点强迫的症状了。于是用上了ISAPI Rewrite,ISAPI_Rewrite是一个强大的基于正则表达式的URL处理引擎,我安装的是官方的ISAPI_Rewrite3_0058_Lite.msi 免费版。免费版与收费版的主要区别是:“No support for distributed .htaccess configurations, directory and web site level configurations. Only one global httpd.conf configuration file will be loaded from Lite version installation folder.”

安装运行后,打开管理工具中Internet信息管理(IIS管理),在网站单击右键选属性,就可以看到ISAPI_Rewrite已经被加入到了ISAPI筛选器中。

按照默认安装的位置,可以在 C:\Program Files\Helicon\ISAPI_Rewrite 找到 httpd.ini 在此文件中输入Rewrite的规则即可。

正常情况下,修改rewrite规则不需要重起IIS,在为Apache编写的Rewrite的规则中,通常把

<IfModule mod_rewrite.c>
RewriteEngine On RewriteRule ^(.*)/archiver/([a-z0-9\-]+\.html)$ $1/archiver/index.php?$2 </IfModule>

其中黑体的部分去掉即可成为ISAPI Rewrite的规则。

但在我的服务器上,调试了很久都调试不出来效果,不清楚到底有无加载这个筛选器,于是我在虚拟机上又试了试。一次便试验成功了,证明是我的服务器其他地方的配置问题,看到IIS下安装配置ISAPI Rewrite,实现asp的静态化的一句话:“默认是装在C:\Program Files\Helicon下,要注意的是这个目录everyone要有读取权限。”才恍然大悟。

因为对系统盘的权限设置过分严格,所以导致新安装的组件都没有everyone权限,包括这里的Helicon文件夹,所以无法正常运行ISAPI Rewrite。但我添加了everyone的读取权限以后,URL Rewrite仍旧没有生效,又找了很多原因,直到最后只重启了一下变成功了。原来更改了组件的权限之后需要重启IIS。现在总结下:

ISAPI Rewrite无效/ISAPI Rewriterule无效的几个可能原因:

1、最可能的原因:C:\Program Files\Helicon没有开放everyone组的读取权限。

2、其次可能原因:C:\Program Files\Helicon已经开放everyone组的读取权限,但没有重启IIS。

2、不可能的原因1:虽然URL Rewrite功能看起来像是新建了目录,但实际上网站程序所在目录对于everyone组只要有普通的读取权限,并不需要有写权限。只要网站能被访问就不是这个网站权限设置的问题。

4、不可能的原因2:不需要像网上那么多的教程那样在IIS中做其他设置(在每个站点都添加了ISAPI Rewrite的ISAPI筛选器,对于这个免费版,安装完即可在也只能在全局范围内生效。所以不需要对每个站点进行设置。

改了权限后,必须在服务里重启一下IIS服务。但我在虚拟机里面没有任何重启操作(安装完后应该有一次自动的重启)。怎样判断何时重启呢?我有个粗略的方法,IIS对于是否要重启的策略可能是这样:对组件访问权限的更改,要在重启后才能生效;而对组件配置的更改(如httpd.conf)则不需要重启即可生效。在我的虚拟机中刚安装后ISAPI Rewrite程序目录的设置和权限就已经是足够开放的了,而且之后没有更改过权限,所以才不需要重启。

实际上,URL重写还有另外一个软件:IIS Rewrite,因为该软件主页的PR值居然是0,所以就没试过这个软件。接下来学习一下正则表达式,好尽快做出效果。

Windows 2003安装并注册aspjpeg(Persits.Jpeg)组件

1:00| 分类:服务器| 标签: | 5,042 次点击

1、先到官方站点下载aspjpeg组件:http://www.aspjpeg.com/download.html
2、安装,注册码17361-38566-42221
3、无需注册,探针已经提示支持该组件了。(不知道为啥这个组件不需要注册)
4、动网论坛等需要此组件的地方即可马上使用。
5、实际上应该还要修改一下aspjpeg所在文件夹和要添加水印的图片所在文件夹的相关权限。但因为aspjpeg和aspupload同为persit公司的产品,在同一文件夹下,所以权限已经设置过了,见《Windows 2003安装并注册aspupload组件》,而一般要添加水印的图片都是上传的图片,所以这个图片文件夹也正好是设置过权限的,所以就不必再次设置。

Windows 2003安装并注册aspupload组件

2008-12-09 23:27| 分类:服务器| 标签: | 6,006 次点击

刚才访问自己一个站的上传页面,出现了以下错误:

Server 对象 错误 ‘ASP 0178 : 80070005’
Server.CreateObject 访问错误
/facepk/upload/step2.asp,行 14
检查权限时,对 Server.CreateObject 的调用失败。拒绝对此对象的访问。

这个页面是我以前写的,用到了aspupload组件,刚刚把虚拟空间上的站点搬到了服务器上,看来是服务器上没装这个aspupload组件的缘故,于是安装并注册了这个组件,具体步骤如下:

1、下载安装组件,我用的是AspUpload v3.0.0.5 特别版,一步步安装下去,中间需要输入SN,而安装包里自带了。估计“特别版”就是“破解版”的意思。

2、注册组件,打开他的说明文档START.html,发现有误:

说明文档中提到的注册语句是:regsvr32 c:\winnt\system32\aspupload.dll,而实际上默认安装的已经不是这个位置了。安装在c:\Program Files\Persits Software\AspUpload\ 下,所以必须输入:regsvr32 "c:\Program Files\Persits Software\AspUpload\Bin\aspupload.dll" 注册(必须有引号),如图:

image

image

3、修改组件所在目录权限设置:因为我对C盘的权限设置比较严格,所以注册成功后不出所料还是错误页面,这时应该如前面的《Windows 2003安装并注册jmail组件》的所说的,先更改Persits Software的权限,增加一个everyone组,然后刷新,错误就立即消失了。但这次不能删掉everyone组,否则会再次出现同样不能创建对象的错误。

image

4、因为这个aspupload组件不同于前面的邮件发送组件,这里是需要写入文件夹的,所以必须修改一下要上传的文件夹的权限。为了安全考虑,我只把需要上传图片的文件夹权限改了一下(把“修改”那项打钩即可),共有四个文件夹:/bbs/uploadface、/bbs/uploadfile、/bbs/PreviewImage、/facepk/face、/facepk/facebefore、/facepk/music(对于动网论坛,做到这一步还不够,因为上传时如果有用到水印,还会提示:

“Microsoft VBScript 运行时错误 错误 ‘800a01ad’
ActiveX 部件不能创建对象: ‘Persits.Jpeg’
/bbs/inc/Dv_ClsMain.asp,行 43”

我开始时没看清,一直以为是上传的组件错误了,原来是水印的组件。同一家公司的。(我自己写的程序即便没有权限也不会报错,因为On Error Resume Next,这点我下面日志会提到,浪费了我很多时间)

image image image

此文没有任何技术含量,纯属记录备忘,后面还会有一篇《Windows 2003安装并注册aspjpeg组件》­ :mrgreen:

Windows 2003安装并注册jmail组件

2008-12-04 16:29| 分类:服务器| 标签: | 12,347 次点击

一、首先下载jmail最新免费版:JMail 4.5下载

二、安装jmail:把JMail45_free.msi上传到服务器上安装,下一步下一步即可。为了今后备份方便可以安装到C盘。

三、注册jmail:在运行里输入:regsvr32 “C:\Program Files\Dimac\w3JMail\jmail.dll”

image

会提示注册成功即可。

image

四、修改目录权限:

此时用探针探测可能仍然提示不支持jmail组件。情况如同这里:win 2003 服务器 安装 Jmail 发信组件,安装成功,没有问题,但是用探针探测,却提示未安装

我估计是由于C盘program files的目录权限设置所致。不用重新启动,修改Dimac的目录权限,增加一个everyone组,然后刷新探针页面,马上就可以看到支持jmail.SMTPMail的Jmail邮件发送了。

当然不能让这个目录这么不安全,所以我们要接着删掉everyone组(所以实际上只是中间改了一下权限,后来又改回来了),探针仍然提示支持jmail。
Update:必须一直开放着everyone组权限,否则过后(可能是重启后)又会提示不支持该组件。

现在就可以正常发送邮件了。

注:当然,除了jmail组件的安装和注册正确外,你还必须设置好你的SMTP服务器,我刚开始时用Gmail的SMTP也不行,后来用另外一个站点上可以正常使用的搜狗企业邮局邮箱的配置就可以了。

搜狗/Gmail的SMTP配置:
要显示的发送邮箱:可任意设
服务器地址:smtp.mail.sogou.com/smtp.gmail.com(gmail的这个我没有成功发送过邮件)
SMTP登录用户名:你在搜狗或者Gmail的登录帐号。
SMTP登录密码:你在搜狗或者Gmail的登录密码。

后来看到:请问我用Gmail邮箱可以使用Jmail发信吗 提到:

一、GMail存在smtp。其地址为:smtp.gmail.com
二、GMail的smtp要求SSL的安全链接
三、GMail的smtp端口号不是25是465
Jmail的发信端口默认是25,不太清楚它能否支持自定义发信端口,如果不支持,那么它就不能支持GMail了。
另外Jmail不支持SSL安全链接,这也使它根本不可能使用GMail的smtp服务。

而我用的是jmail的免费版本,所以是不可能用Gmail的SMTP服务了,但帖子中的“看来用Gmail作为发件地址是不行了”这句回复有错,仍然可以用Gmail作为发件地址,只需把“要显示的发送邮箱”设置为Gmail的地址即可,但我测试过有些问题。

第一项“要显示的发送邮箱”虽然可以任意设,但最好让要显示的邮箱地址与SMTP的登录地址一样,这样子才可以立即收到邮件(用Gmail邮箱测试),否则会延缓几分钟或者直接就收不到邮件。本想如果这里可以任意设的话,那么我只需要修改这一个地方,以下三样都不修改即可,就可以实现用任何地址发信了。但测试了四封邮件,只收到一封而且延缓了几分钟,另外三封都没有收到(也不在spam中),发送的页面也响应了很久才提示发送成功。但一旦改为与SMTP登录用户名一样的地址,不但服务器发送的页面响应速度快,很快就提示发送成功,而且Gmail里也马上收到邮件。

选择品牌服务器还是组装服务器

2008-11-26 1:43| 分类:服务器| 标签: | 2,669 次点击

此文适合预算低的创业者们看,一挥手就一台IBM一台曙光的可以飘过~

一、买品牌还是自己组装:

刚开始时,我是没打算自己配服务器的,一直感觉:

1、服务器门槛比台式电脑要高多了(后来发现都是那么一回事,甚至服务器少了那些周边配件更简单些)。
2、以前给自己、弟弟、还有亲戚同学配的机器全部都是戴尔的,所以潜意识里就懒得去搞硬件,更懒得上电脑城(当然也怕会被宰)。
3、品牌的比较稳定(因为这里所说的品牌其实只是“有牌”,并非“名牌”,所以这点也未被证实)
4、品牌机保修有保障(这个第一感觉后来被证明在服务器这方面上完全是错的)
5、我是做软件的,不想多把时间浪费在硬件上(实际上为了省钱谁都应该了解一些硬件)。

这些原因就使我一开始就决定要买廉价的品牌机。

正当我几乎都要预定某品牌服务器时,想起可能托管商还会给我一些建议呢,所以在询问服务器产商的同时联系托管商,于是再次看了泉州的几家网站,选了pr为5的酷龙IDC。使用他们的在线咨询系统。

客服是个MM,她先是要求加一下QQ,然后希望通过电话交谈,方便一些(幸好有打这个电话,太关键了)。她在电话中除了跟我说了些托管的事情外,还告诉我最好去电脑城自己配,正是这个电话让我转变了观念。很感谢这位客服MM啊。。

她大致上说电脑配件这种东西全国价格差不多,网上保修也麻烦,不用在网上买。而且每个部件都保修,所以也不用买品牌服务器。她还提出可以采用那种租用的方式(即托管一年后送产权),不过还是建议我自己配了再托管。我本来坚定的选择品牌服务器的观念就瓦解了。这样子总共就有了三种解决方案:

1、自己去电脑城配-拿去托管
2、自己上网买一台品牌机-拿去托管
3、自己不用配,直接租用

我先告诉她我对托管和租用的优劣判断:

租用的好处:
1、出故障时反应可以比较快,按客服的意思是可以直接拿一台新的去替换。(但这样那台旧的上面的数据安全怎么保证啊?)
2、不用麻烦自己跑电脑城,方便,全部由托管商搞定,保修也全管了,比较“无忧”的做法。

租用的坏处:
1、租用的机器无法保证用了多久(虽然客服说能保证95新,但这仍然太虚了),而托管是自己配的不存在这个担心。
2、租用了服务器如果你不满意无法换IDC,其实租用就等于一下子签了1年或两年的合约(中途退出你损失惨啊,服务器没拿到每个月还多了三四百费用),这样就受制于IDC,钱已拿到,IDC的态度可能就不好了哦。而托管的可以选择月付,不满意就可以要求换一家托管,或者要这家换机房(服务器在自己手上有谈判筹码),很灵活。
3、租用的服务器配置普遍较差,价格比市面上的贵。虽然客服说他们是批量拿到机器的还会比较便宜。

但她提出了一个两全的方法——让他们公司出面,以批发价的价格给我,让我自己去电脑城的合作商家去配。这样既有了批发价,又有了两方保证(托管商和装机商)的保修。这样就敲定了“托管”,现在就是要在“自己配”和“买品牌机”中选一种了,我告诉她我晚上考虑考虑。

其实电脑不管是不是服务器,只要运行起来一次后,就不会有问题了,又没有去动他,如果死机重启什么的,那也是软件的问题,而不是硬件的问题。我之前老是担心出故障,现在看来好像没这个必要,不用太担心。

举例来说:我现在用的戴尔的5150,用了三年,机箱近一个月都被我打开着(昨天关上了),里面满是灰尘;前几个月机箱周围的环境还是闷热潮湿的,一运行占CPU的程序噪音就暴大的问题已经有一两年了,但他还是稳定的运转着,这样的环境下都没有问题,何况在电信机房那么好的环境里的服务器?

所以组装电脑现在已经是一个粗活,并不是什么精密的活(只是各个配件里面精密),所以不要迷信大厂的品牌机,入门级的服务器也是一样。不管是大厂里的工人还是电脑城里的技术员,谁装起来都一样,只要按要求装好了就没问题。兼容性问题主板产商已经考虑到了,我相信电脑产商不会太重视组装后的电脑的测试环节,因为主板产商已经测试好了。这样子算起来在电脑城装的电脑就跟在工厂里的一样了,只是我一直自己没动手在硬件层面上“装电脑”,我对不会的东西总有一种自然的敬畏,所以就以为组装是个精密的活。殊不知这种思维就像是“戴尔工厂装出来的XP会比我自己装出来的稳定一些”的论调一样搞笑。戴尔应该也不会重视软件装好后的测试和兼容性环节吧?intel和微软已经测试好了。­ :mrgreen:

所以稳定性不会差很多,那现在就要考虑“出故障”的时候的应对措施哪种方便了。

如果网上买异地的品牌机,维修起来会是很大的问题,就算是上门服务也得等一两天。而如果自己配,就可以直接把配件拿去换或者修了,甚至拿个自己的硬盘或内存什么的先顶上(所以主板、内存和硬盘都用普通台式机的即可)。

而且,因为配服务器时必然找到的是一个很了解服务器会修服务器的专业的人,这样子以后就有人来修服务器了。而如果买品牌机的话就没人修了!!!等于花点精力但多了一个免费维护人员。哦,不止一个,是一个专业的维修队伍!(这个是我最终敲定去电脑城配的最重要原因)

因为台式电脑我可以自己修,坏了时间也不急,所以不需要“专业的维修队伍”,而当时条件也没创业这么辛苦,不缺这些钱,所以可以买品牌机。而现在服务器我可是不会修的,预算又很低,所以决定了,这次服务器自己配!

很奇怪吧,看起来不甚重要的台式机却选择了买品牌机,而看起来非常重要不容有差错的服务器却选择了自己组装,前后好像不仅只是观念的原因,也有必然的因素在里面,我也觉得不可思议。不过冥思苦想后,我终于明白了我由开始时抱定品牌服务器的想法转变为自己组装的缘由:

虽然服务器的配置和使用环境决定服务器比台式机更不容易坏掉,但是,因为服务器坏掉的结果太可怕了,所以按我稍微有点强迫症的思维,就老会去想万一坏掉,万一……会怎样,虽然买品牌机稳定,但万一坏了修理速度和修理人员就是一大问题。所以就必须有一个能及时维护的方案。既然我无法从心里上认可任何一家国产的和自己配的都稳定,那我只能从修理速度上下手,所以只能选择自己配。

而台式机坏掉何时修好就无所谓了,所以台式机只要求稳定,而不要求修理速度快。稳定的话就是选一家产商了。

以上想法可以给个公式出来,即:

强迫症思维的人心里会这么想:不怎么稳定+修理迅速>稳定+修理缓慢

这就是我选择组装服务器的根本原因。

不知道这样子在与IDC合作的组装店里买的服务器不知道IDC负不负责保修,不过听那客服MM说他们自己也分不清哪些是自己的哪些是托管的,而我买的商家还是跟他们合作的商家,那就更像他们自己的服务器了,所以很可能这样子他们就会一同也给修硬件了吧­ 😀 。

关于品牌机器和组装机器,我现在觉得:以后就是买台式电脑也不要买品牌的,尤其是戴尔的,就一年一次保修,一年后配件如果坏了怎么办?自己配的还可以找产商,而戴尔的找谁?(幸好我用了三年,配件都没坏,也许戴尔认为它的稳定性能够弥补保修费用高的缺陷吧),再说,我买的这款戴尔5150,还不是一样噪音很大,比舍友电脑城配的机子噪音大多了。以前还出现过和QQ的键盘加密不兼容的情况(当然也有QQ自己的原因),看来前面说的“大厂装机”和“电脑城装机”的论断还不算瞎扯。

2008.11.26  凌晨1点