问题描述如下: 有如下SAS代码通过HTTP下载文件到数据表中 filename h url 'http://wuyz:80/sasweb/asp/downfile.asp?rpt_id=56 ' recfm=f debug; data cs1 (compress=yes); infile h; length content $256 sn 8; input content $char256.; rpt_id=56; sn=_n_; run; 运行之后产生如下错误: NOTE: >>> GET /sasweb/asp/downfile.asp?rpt_id=56 HTTP/1.0 NOTE: >>> Host: wuyz:80 SAS 系统 NOTE: >>> Accept: */*. NOTE: >>> Accept-Language: en NOTE: >>> Accept-Charset: iso-8859-1,*,utf-8 NOTE: >>> User-Agent: SAS/URL NOTE: >>> NOTE: <<< HTTP/1.1 500 Server Error NOTE: <<< Server: Microsoft-IIS/5.1 NOTE: <<< Date: Wed, 06 Apr 2005 01:40:47 GMT NOTE: <<< Content-Type: text/html NOTE: <<< Content-Length: 93 NOTE: <<< ERROR: 从 HTTP 服务器接收到无效的应答。请使用调试选项获取更多信息。. NOTE: SAS 系统由于错误而停止了该步的处理。 NOTE: SAS 设置选项 OBS=0,并将继续检查语句。 这可能会导致 NOTE: 在数据集中没有观测。 WARNING: 数据集 WORK.CS1 可能不完整。该步停止时,共有 0 个观测和 3 个变量。 WARNING: 数据集 WORK.CS1 由于该步已停止,而没有被替换。 NOTE: “DATA 语句”所用时间(总处理时间): 实际时间 0.02 秒 CPU 时间 0.00 秒 疑惑: 以前这程序的用的好好的,为什么突然就报错了呢? 分析: 把上面代码放在SAS窗口运行正常,提示如下: NOTE: Infile H 是: Filename=http://crserver:80/powerviewer/asp/downfile.asp?rpt_id=60, Local Host Name=wuyz, Local Host IP addr=10.3.8.225, Service Hostname Name=crserver, Service IP addr=10.4.8.226,Service Name=N/A, Service Portno=80,Lrecl=256,Recfm=Fixed NOTE: 从 Infile H 中读取了 54 条记录。 NOTE: 数据集 WORK.CS1 有 54 个观测和 3 个变量。 NOTE: 压缩的数据集 WORK.CS1 大小减少了百分之 0.00。 压缩为 2 页;不压缩将会要求 2 页。 NOTE: “DATA 语句”所用时间(总处理时间): 实际时间 0.57 秒 CPU 时间 0.01 秒 表明运行正常 得出这段代码应该还是没问题的 ,也许是环境发生变化,导致错误 突然想起我最近为了方便调试一个ISAPI DLL,所以改变了IIS的配置,没有选上缓存ISAPI应用程序,难道跟那有关系呢? 解决: 天知道,竟然真是这个问题,重新选上缓存ISAPI应用程序,这段代码重新运行正常了 故障原因分析: 不好意思,我也不知道,得问SAS公司才知道 结论: 不要怀疑自己得编程能力,不要怀疑系统得正常运行能力,一定要捕抓任何蛛丝马迹 嘿嘿 
|