Tag: ASP预览模式: 普通 | 列表

服务器端与客户端不同的执行结果

服务器环境:

服务器版本 Microsoft-IIS/7.5

脚本解释引擎 VBscript/5.8.16385
ASP/Visual Basic代码
  1. conn.close '句1  
  2. Set conn=Nothing '句2  
  3. If Err.number=0 Then  
  4.     'Response.Write "<script>this.location.href='info_list.asp';</SCRIPT>"  
  5.     'Response.Write "<script>location='info_list.asp';</SCRIPT>"  
  6.     Response.Write "<script>alert('信息保存成功!');this.location.href='info_list.asp';</SCRIPT>"  
  7. Else  
  8.     Response.Write "<script>alert('操作不成功!');location='javascript:history.back(-1)';</SCRIPT>"  
  9. End If  

 上面的代码,在服务器端和客户端的执行结果不一样。

在客户端,如果不把句1和句2注释掉,执行结果会提示:

|1668|800a0e7d|连接无法用于执行此操作。在此上下文中它可能已被关闭或无效。 80

但在服务器调试,则没有任何错误提示。 

查看更多...

Tags: ASP 数据连接 服务器端 客户端

分类:网络 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 608

今天在调试功能页面时遇到一件非常奇怪的事,让我非常不明就里。 

网站的服务器环境是windows server 2008 R2 enterprise 64位,IIS版本为7.5。

同样的网站在不同的终端电脑打开运行的结果是不一样的,郁闷点一。再就是明明在服务器端开启了调试模式,但在终端浏览器里就是不显示具体的错误信息,而只显示“500 - 内部服务器错误”这样的,郁闷点二。

先说第一点。因为条件关系,我是直接远程连接到服务器上去修改代码,然后本地浏览器测试,显示有错,因为一直不显示具体的错误代码,看不到哪里出错(只显示“500 - 内部服务器错误”),所以我就直接在服务器用浏览器打开网站测试,发现没有错误提示,一切正常。开始怀疑浏览器的JS版本或许不同,后来发现没有相关的JS代码执行,只执行了ASP代码,应该与浏览器没有直接关系。

第二点也一直没解决,因为经常都不能显示错误信息,只显示所谓的“友好错误信息”,恨浏览器的程序员。

折腾了一下午,始终没找到原因,后来想还应该是ASP代码的问题,于是就又检查起代码来,在不同的地方设置停止运行的断点,各个小功能测试,均一无所获。

查看更多...

Tags: ASP 调试 页面结果

分类:网络 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 714

KingEditor在线编辑器使用配置备忘

KingEditor编辑器算是比较流行通用的在线编辑器了吧,网上有很我相关的使用方法、技巧等文章。今天我想说的是一个我遇到的奇怪问题。

服务器环境:ASP的代码,IIS 6.0。

问题描述:表单提交时KingEditor获取不到文本框的内容。

在一个网站里,用下面的代码,可以有效使用KingEditor编辑器。

JavaScript代码
  1. var editor;  
  2. KindEditor.ready(function(K) {  
  3.     editor = K.create('textarea[name="content"]', {  
  4.         cssPath : '../kindeditor-4.1.9/plugins/code/prettify.css',  
  5.         uploadJson : '../kindeditor-4.1.9/asp/upload_json.asp',  
  6.         fileManagerJson : '../kindeditor-4.1.9/asp/file_manager_json.asp',  
  7.         allowFileManager : true,  
  8.         afterCreate : function() {  
  9.             var self = this;  
  10.             K.ctrl(document, 13, function() {  
  11.                 self.sync();  
  12.                 K('form[name=example]')[0].submit();  
  13.             });  
  14.             K.ctrl(self.edit.doc, 13, function() {  
  15.                 self.sync();  
  16.                 K('form[name=example]')[0].submit();  
  17.             });  
  18.         }  
  19.     });  
  20.     prettyPrint();  
  21. });  

对于上面这段代码,很不明白的form[name=example],这样的表单名是不存在的,为什么可以用且没有错误提示呢?

但在另一个网站里,像上面这样却不行,表单提交后获取不到编辑器里的任何内容。改成下面的,就可以了。

JavaScript代码
  1. var editor;  
  2. KindEditor.ready(function(K) {  
  3.     editor = K.create('textarea[name="content"]', {  
  4.         cssPath : '../kindeditor-4.1.9/plugins/code/prettify.css',  
  5.         uploadJson : '../kindeditor-4.1.9/asp/upload_json.asp',  
  6.         fileManagerJson : '../kindeditor-4.1.9/asp/file_manager_json.asp',  
  7.         allowFileManager : true,  
  8.         afterBlur: function(){this.sync();}  
  9.     });  
  10.     prettyPrint();  
  11. });  

查看更多...

Tags: KingEditor 在线编辑器 ASP

分类:网络 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 1129

下面的提示虽然不常见,但对于ASP程序员来说绝对不会陌生吧。

Microsoft OLE DB Provider for SQL Server 错误 '80004005'

连接字符串属性无效

关于这个问题的解答,网络上有很多版本,但基本上都是针对连接字符串的写法,而没有考虑到一种比较极端的情况:SQL Server没有启动。如下图:

不知道是什么原因,有时服务器重启后,SQL Server不会自动启动,所以就出现了本文开头提到的错误提示,解决这个自动启动的问题是另一回事了。现在想讨论的是在ASP里怎么去捕捉这个80004005错误。

在ASP代码是加下面的语句没有效果。

ASP/Visual Basic代码
  1. StrDSN="Provider=SQLOLEDB.1;Persist Security Info=false;Server=" & StrServerName & ";Database=" & StrDBName & ";Uid=" & StrUid & ";Pwd=" & StrPwd & ";Pooling=true; MAX Pool Size=512;Min Pool Size=50;Connection Lifetime=30;"  
  2. Conn.Open StrDSN  
  3. If Err.number>0 Then  
  4.     'Response.write  Err.number&Err.Description  
  5.     'Response.write "提示:数据连接错误。"  
  6.     Response.redirect "/"  
  7.     Response.End  
  8. End If  

查看更多...

Tags: SQL 数据库 服务 连接 ASP 错误信息

分类:网络 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 856

近半年来服务器让我疯掉了,不断有新的老的问题出现。

整体来讲是几乎每天都得重启,因为有个网站可能是代码错误过多,导致IIS无法容错。当然,也许还有其他原因,因为一些访问量超少的小网站会出现一些奇怪的问题而导致网站关闭打不开。

 

-----------

2016.4.12

配额不足,无法处理此命令。

查看更多...

Tags: IIS ASP 错误 服务器 2003 网站

分类:网络 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 1311

ASP不能正确获得JPG图片的尺寸

 一般情况下,用下面的函数是可以正确获得JPG(不能是JPEG)图片的像素大小的,比如1024*768PIX这样的。

ASP/Visual Basic代码
  1. '获取图片的像素大小  
  2. Class imgInfo  
  3.     dim aso  
  4.     Private Sub Class_Initialize  
  5.         set aso=CreateObject("Adodb.Stream")  
  6.         aso.Mode=3  
  7.         aso.Type=1  
  8.         aso.Open  
  9.     End Sub  
  10.     Private Sub Class_Terminate  
  11.         err.clear  
  12.         set aso=nothing  
  13.     End Sub  
  14.   
  15.     Private Function Bin2Str(Bin)  
  16.         Dim I, Str  
  17.         For I=1 to LenB(Bin)  
  18.         clow=MidB(Bin,I,1)  
  19.         If ASCB(clow)<128 Then  
  20.         Str = Str & Chr(ASCB(clow))  
  21.         else  
  22.         I=I+1  
  23.         If I <= LenB(Bin) Then Str = Str & Chr(ASCW(MidB(Bin,I,1)&clow))  
  24.         End If  
  25.         Next  
  26.         Bin2Str = Str  
  27.     End Function  
  28.   
  29.     Private Function Num2Str(num,base,lens)  
  30.     dim ret  
  31.     ret = ""  
  32.     while(num>=base)  
  33.     ret = (num mod base) & ret  
  34.     num = (num - num mod base)/base  
  35.     wend  
  36.     Num2Str = right(string(lens,"0") & num & ret,lens)  
  37.     End Function  
  38.   
  39.     Private Function Str2Num(str,base)  
  40.         dim ret  
  41.         ret = 0  
  42.         for i=1 to len(str)  
  43.         ret = ret *base + cint(mid(str,i,1))  
  44.         next  
  45.         Str2Num=ret  
  46.     End Function  
  47.   
  48.     Private Function BinVal(bin)  
  49.     dim ret  
  50.     ret = 0  
  51.     for i = lenb(bin) to 1 step -1  
  52.     ret = ret *256 + ascb(midb(bin,i,1))  
  53.     next  
  54.     BinVal=ret  
  55.     End Function  
  56.   
  57.     Private Function BinVal2(bin)  
  58.     dim ret  
  59.     ret = 0  
  60.     for i = 1 to lenb(bin)  
  61.     ret = ret *256 + ascb(midb(bin,i,1))  
  62.     next  
  63.     BinVal2=ret  
  64.     End Function  
  65.   
  66.     Private Function getImageSize(filespec,filefrom)  
  67.     dim ret(3)  
  68.     select case filefrom  
  69.         case 1  
  70.             '1为同域文件,否则为异域文件  
  71.             aso.LoadFromFile(filespec)  
  72.         case 2  
  73.             ASO.Write filespec  
  74.             ASO.Position = 0  
  75.     end select  
  76.     bFlag=ASO.Read(3)  
  77.     select case hex(binVal(bFlag))  
  78.     case "4E5089":  
  79.     aso.read(15)  
  80.     ret(0)="PNG"  
  81.     ret(1)=BinVal2(aso.read(2))  
  82.     aso.read(2)  
  83.     ret(2)=BinVal2(aso.read(2))  
  84.     case "464947":  
  85.     aso.read(3)  
  86.     ret(0)="GIF"  
  87.     ret(1)=BinVal(aso.read(2))  
  88.     ret(2)=BinVal(aso.read(2))  
  89.     case "535746":  
  90.     aso.read(5)  
  91.     binData=aso.Read(1)  
  92.     sConv=Num2Str(ascb(binData),2 ,8)  
  93.     nBits=Str2Num(left(sConv,5),2)  
  94.     sConv=mid(sConv,6)  
  95.     while(len(sConv)<nBits*4)  
  96.     binData=aso.Read(1)  
  97.     sConv=sConv&Num2Str(ascb(binData),2 ,8)  
  98.     wend  
  99.     ret(0)="SWF"  
  100.     ret(1)=int(abs(Str2Num(mid(sConv,1*nBits+1,nBits),2)-Str2Num(mid(sConv,0*nBits+1,nBits),2))/20)  
  101.     ret(2)=int(abs(Str2Num(mid(sConv,3*nBits+1,nBits),2)-Str2Num(mid(sConv,2*nBits+1,nBits),2))/20)  
  102.     case "FFD8FF":  
  103.     do  
  104.     do: p1=binVal(aso.Read(1)): loop while p1=255 and not aso.EOS  
  105.     If p1>191 and p1<196 Then exit do else aso.read(binval2(aso.Read(2))-2)  
  106.     do:p1=binVal(aso.Read(1)):loop while p1<255 and not aso.EOS  
  107.     loop while true  
  108.     aso.Read(3)  
  109.     ret(0)="JPG"  
  110.     ret(2)=binval2(aso.Read(2))  
  111.     ret(1)=binval2(aso.Read(2))  
  112.     case else:  
  113.     If left(Bin2Str(bFlag),2)="BM" Then  
  114.     aso.Read(15)  
  115.     ret(0)="BMP"  
  116.     ret(1)=binval(aso.Read(4))  
  117.     ret(2)=binval(aso.Read(4))  
  118.     else  
  119.     ret(0)=""  
  120.     End If  
  121.     end select  
  122.     ret(3)="width=""" & ret(1) &""" height=""" & ret(2) &""""  
  123.     getimagesize=ret  
  124.     End Function  
  125.   
  126.     Public Function imgW(pic_path,filefrom)  
  127.         '参数filefrom是判断文件是远程http开头的还是本地的  
  128.         '1为本地,2为远程  
  129.         select case filefrom  
  130.             case 1  
  131.                 Set fso1 = server.CreateObject("Scripting.FileSystemObject")  
  132.                 If (fso1.FileExists(pic_path)) Then  
  133.                     Set f1 = fso1.GetFile(pic_path)  
  134.                     ext=fso1.GetExtensionName(pic_path)  
  135.                     select case ext  
  136.                     case "gif","bmp","jpg","png":  
  137.                     arr=getImageSize(f1.path,1)  
  138.                     imgW = arr(1)  
  139.                     end select  
  140.                     Set f1=nothing  
  141.                 else  
  142.                     imgW = 0  
  143.                 End If  
  144.                 Set fso1=nothing  
  145.             case 2  
  146.                 Arr=GetImageSize(pic_path,2)  
  147.                 imgW = Arr(1)  
  148.         end select  
  149.     End Function  
  150.   
  151.     Public Function imgH(pic_path,filefrom)  
  152.         select  case filefrom  
  153.             case 1  
  154.                 Set fso1 = server.CreateObject("Scripting.FileSystemObject")  
  155.                 If (fso1.FileExists(pic_path)) Then  
  156.                 Set f1 = fso1.GetFile(pic_path)  
  157.                 ext=fso1.GetExtensionName(pic_path)  
  158.                 select case ext  
  159.                 case "gif","bmp","jpg","png":  
  160.                 arr=getImageSize(f1.path,1)  
  161.                 imgH = arr(2)  
  162.                 end select  
  163.                 Set f1=nothing  
  164.                 else  
  165.                 imgH = 0  
  166.                 End If  
  167.                 Set fso1=nothing  
  168.             case 2  
  169.                 Arr=getImageSize(pic_path,2)  
  170.                 imgH = Arr(2)  
  171.         end select  
  172.     End Function  
  173. End Class  

但下面这两个图片却不行,没办法获得。

图片是用iPhone 5S手机拍摄的,并在电脑上简单编辑过的。

解决的方法比较简单直接,把图片转换成PNG的,就可以了。

查看更多...

Tags: 图片尺寸 图片大小 ASP

分类:网络 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 702

 错误描述如下:

Microsoft JET Database Engine 错误 '80040e21'

由于您和其他用户试图同时改变同一数据,导致 Microsoft Jet 数据库引擎停止进程。

 

截图:

查看更多...

Tags: ASP 数据库引擎 数据库锁定

分类:网络 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 1385

ASP格式化日期的通用函数

日期格式化函数:

ASP/Visual Basic代码
  1. Function FormatDate(DateAndTime, Format)  
  2.     On Error Resume Next  
  3.     Dim yy,y, m, d, h, mi, s, strDateTime  
  4.     FormatDate = DateAndTime  
  5.     If Not IsNumeric(Format) Then Exit Function  
  6.     If Not IsDate(DateAndTime) Then Exit Function  
  7.     yy = CStr(Year(DateAndTime))  
  8.     y = Mid(CStr(Year(DateAndTime)),3)  
  9.     m = CStr(Month(DateAndTime))  
  10.     If Len(m) = 1 Then m = "0" & m  
  11.     d = CStr(Day(DateAndTime))  
  12.     If Len(d) = 1 Then d = "0" & d  
  13.     h = CStr(Hour(DateAndTime))  
  14.     If Len(h) = 1 Then h = "0" & h  
  15.     mi = CStr(Minute(DateAndTime))  
  16.     If Len(mi) = 1 Then mi = "0" & mi  
  17.     s = CStr(Second(DateAndTime))  
  18.     If Len(s) = 1 Then s = "0" & s  
  19.     Select Case Format  
  20.         Case "1"  
  21.             strDateTime = y & "-" & m & "-" & d & " " & h & ":" & mi & ":" & s  
  22.         Case "2"  
  23.             strDateTime = yy & m & d & h & mi & s  
  24.         Case "3"  
  25.             strDateTime = yy & m & d & h & mi  
  26.         Case "4"  
  27.             strDateTime = yy & "年" & m & "月" & d & "日"  
  28.         Case "5"  
  29.             strDateTime = m & "-" & d  
  30.         Case "6"  
  31.             strDateTime = m & "/" & d  
  32.         Case "7"  
  33.             strDateTime = m & "月" & d & "日"  
  34.         Case "8"  
  35.             strDateTime = y & "年" & m & "月"  
  36.         Case "9"  
  37.             strDateTime = y & "-" & m  
  38.         Case "10"  
  39.             strDateTime = y & "/" & m  
  40.         Case "11"  
  41.             strDateTime = y & "-" & m & "-" & d  
  42.         Case "12"  
  43.             strDateTime = yy & "/" & m & "/" & d  
  44.         Case "13"  
  45.             strDateTime = yy & "." & m & "." & d  
  46.         Case "14"  
  47.             strDateTime = yy & "-" & m & "-" & d  
  48.         Case Else  
  49.             strDateTime = DateAndTime  
  50.     End Select  
  51.     FormatDate = strDateTime  
  52. End Function  

不用作过多解释。

Tags: ASP 日期

分类:网络 | 固定链接 | 评论: 4 | 引用: 0 | 查看次数: 2074