以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 部分电脑运行出现闪退 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=173428) |
-- 作者:z769036165 -- 发布时间:2021/11/29 15:43:00 -- 部分电脑运行出现闪退 发布后的程序有些电脑CPU在5%以下,有部分电脑出现CPU达15%占用,内存在300M左右,CPU占用过高,就出现闪退了,这个是.net版本的问题还是哪地方存在问题呢? |
-- 作者:有点蓝 -- 发布时间:2021/11/29 15:46:00 -- 应该是程序里出现了死循环的代码和引用。 发布一个空项目放到这些电脑测试有没有问题?
|
-- 作者:z769036165 -- 发布时间:2021/11/29 15:51:00 -- 那很奇怪,像这个要处理100行,我分开处理,如每次处理5行,就没问题,然后分20次,就正常执行完毕了,如果有死循环,那应该分开执行也会有影响啊! |
-- 作者:有点蓝 -- 发布时间:2021/11/29 15:58:00 -- 一个简单的排除方法,去掉这个代码,发布放到这些电脑执行有没有问题?如果没有就是代码有问题,如果还有就是其它地方代码问题 |
-- 作者:z769036165 -- 发布时间:2021/12/13 13:57:00 -- For Each dr As DataRow In qg.DataRows \'遍历文件夹内单号 w = qc.Find("单号 = \'" & dr("单号") & "\'") \'在指定表中判断是否存在该单号 If w IsNot Nothing Then ’如果存在 w("本地地址") = dr("本地位置") \'在指定表中写入本地地址 Dim ifo As new FileInfo(w("本地地址")) If FileSys.DirectoryExists("\\\\" & ip & "\\单号文件") Then \'如果共享文件路径存在 If FileSys.DirectoryExists("\\\\" & ip & "\\单号文件\\" & MID(w("单号"),6,4)) Then \'判断单号指定的年份文件夹是否存在 FileSys.CopyFile(w("本地地址"),"\\\\" & ip & "\\单号文件\\" & MID(w("单号"),6,4) & "\\" & w("简称") & w("单号") & ifo.Extension,True) ’复制本地文件到共享地址 w("存档状态") = "已存档" w("共享地址") = "\\\\" & ip & "\\单号文件\\" & MID(w("单号"),6,4) & "\\" & w("简称") & w("单号") & ifo.Extension Else FileSys.CreateDirectory("\\\\" & ip & "\\单号文件\\" & MID(w("单号"),6,4)) FileSys.CopyFile(w("本地地址"),"\\\\" & ip & "\\单号文件\\" & MID(w("单号"),6,4) & "\\" & w("简称") & w("单号") & ifo.Extension,True) w("存档状态") = "已存档" w("共享地址") = "\\\\" & ip & "\\单号文件\\" & MID(w("单号"),6,4) & "\\" & w("简称") & w("单号") & ifo.Extension End If Else w("存档状态") = "未存档" End If End If Next 这个代码出现的闪退,发现问题出现IP上面,之前定义的 Dim IP As String = "192.168.3.10" 这样不闪退 但是近期这个共享的地址存储不够了,换成另外一个地址 Dim IP As String = "192.168.3.11\\hhdh$\\管理台账 在 指定 (192.168.3.60) 上",结果发现,开始前几个单号都能正常,大概第3~4个开始就直接退了
|
-- 作者:z769036165 -- 发布时间:2021/12/13 14:03:00 -- 用MessageBox.Show排查是在这个地方的代码运行出现闪退的,主要问题是如果有异常应该弹出报错框,不应该直接闪退啊! |
-- 作者:有点蓝 -- 发布时间:2021/12/13 14:30:00 -- 1、去掉目录里的空格和括号试试 2、关闭服务器杀毒软件试试 3、使用循环内部使用try包起来:http://www.foxtable.com/webhelp/topics/2070.htm 建议还是使用ftp管理文件,共享文件夹这种方式处理,任意产生冲突,比如A在复制文件,B在删除文件,C在打开文件
|
-- 作者:z769036165 -- 发布时间:2021/12/24 16:51:00 -- 我ip改回原来的也发现报错 Dim ip As String = "192.168.1.2" For Each dr As DataRow In DataTables("文件表").DataRows \'遍历文件文件夹订单表 w = DataTables("单号表").Find("单号 = \'" & dr("单号") & "\'") If w IsNot Nothing Then w("状况") = "已存档" w("本地地址") = dr("文件位置").Replace("文件","文件\\文件历史") Dim ifo As new FileInfo(w("本地地址")) FileSys.MoveFile(dr("文件位置"),w("本地地址"),True) res = Functions.Execute("ftp上传",w("本地地址"),"\\文件\\2112\\" & w("单号") & ifo.Extension) If res = 1 Then w("文件存档状态") = "已存档" w("共享地址") = "\\\\" & ip & "\\文件\\2112\\" & w("单号") & ifo.Extension Else w("文件存档状态") = "未存档" End If End If Next 然后我把上传改成用ftp上传了,发现如果上传1~2个文件,就正常运行,如果超过就直接闪退 我用try判断没用,不弹出错误,也是直接退 然后用MessageBox判断也不行,不弹出判断,直接退。
|
-- 作者:有点蓝 -- 发布时间:2021/12/24 17:23:00 -- 不移动文件,测试有没有问题?去掉下面代码 FileSys.MoveFile(dr("文件位置"),w("本地地址"),True)
|