1。Asp文件里最好不要出现非英文字符,否则当应用程序在其它语言服务上运行时会因为编码问题导致不可预知的错误,代码里有中文注解,到日文服务上运行就变成乱码,乱码可能会和双引号合并成为新字符导致字符串找不到结束标记,同样的错误在asp.net的aspx文件里也经常出现,如果aspx页面里出现定义字体的属性为“宋体”的时候,就会和双引号合并未新字符串,从而导致页面排版混乱。
2。windows2003无法解析asp页面,返回404错误。原因是iis安装后默认是不启动asp解析功能的,打开解析功能的方法:控制面板-》高级工具-》IIS管理-》IIS扩展
3。asp上传文件大小被限止在200K的解决方案:
在IIS属性中选中“允许直接编辑配置数据库”
net stop iisadmin
WINDOWS/system32/inetsrv下的metabase.xml
AspMaxRequestEntityAllowed把他修改为需要的值,默认为204800,即200K 把它修改为51200000(50M)或者更大
如果找不到,可以在 <IIsWebService Location ="/LM/W3SVC" ... 里添加
net start iisadmin
在IIS属性中取消“允许直接编辑配置数据库” --好像不是必须的
4。经验3虽然可以修改iis的上传大小限止,但是这个只适用于有权限修改服务器设置的情况下实现。如果不能修改,则需要修改asp上传页面的后台代码,在进行 Request.BinaryRead(Size) 的时候size不要设置为 Request.TotalBytes ,而是固定大小 200k以内,建议使用10K。分块读取完成后再进行连接成一个完整的文件。
FormSize = Request.TotalBytes
size2 = FormSize
writelog("FormSize:" & FormSize)
'FormData = Request.BinaryRead(FormSize)
Dim MaxRead
Dim SourceData
MaxRead = 10000
If MaxRead > FormSize Then
FormData = Request.BinaryRead(FormSize)
Else
Set SourceData = Server.CreateObject("Adodb.Stream")
SourceData.Open
SourceData.Type = 1
Do While FormSize > 0
FormData = Request.BinaryRead(MaxRead)
SourceData.Write FormData
FormSize = FormSize - MaxRead
Loop
writelog("len::::" & SourceData.Size)
SourceData.Position = 0
FormData = SourceData.Read
writelog("len:::" & lenb(FormData))
SourceData.Close
End if
FormSize = size2