左栏'); } else{ document.write('关闭左栏'); } }catch(e){alert(e);}
Foxtable(狐表)用户栏目专家坐堂 → 部分电脑运行出现闪退


  共有4051人关注过本帖树形打印复制链接

主题:部分电脑运行出现闪退

帅哥哟,离线,有人找我吗?
z769036165
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:760 积分:5430 威望:0 精华:0 注册:2012/10/5 21:53:00
部分电脑运行出现闪退  发帖心情 Post By:2021/11/29 15:43:00 [只看该作者]

发布后的程序有些电脑CPU在5%以下,有部分电脑出现CPU达15%占用,内存在300M左右,CPU占用过高,就出现闪退了,这个是.net版本的问题还是哪地方存在问题呢?

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110443 积分:562081 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/11/29 15:46:00 [只看该作者]

应该是程序里出现了死循环的代码和引用。

发布一个空项目放到这些电脑测试有没有问题?

 回到顶部
帅哥哟,离线,有人找我吗?
z769036165
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:760 积分:5430 威望:0 精华:0 注册:2012/10/5 21:53:00
  发帖心情 Post By:2021/11/29 15:51:00 [只看该作者]

那很奇怪,像这个要处理100行,我分开处理,如每次处理5行,就没问题,然后分20次,就正常执行完毕了,如果有死循环,那应该分开执行也会有影响啊!

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110443 积分:562081 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/11/29 15:58:00 [只看该作者]

一个简单的排除方法,去掉这个代码,发布放到这些电脑执行有没有问题?如果没有就是代码有问题,如果还有就是其它地方代码问题

 回到顶部
帅哥哟,离线,有人找我吗?
z769036165
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:760 积分:5430 威望:0 精华:0 注册:2012/10/5 21:53:00
  发帖心情 Post By: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
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:760 积分:5430 威望:0 精华:0 注册:2012/10/5 21:53:00
  发帖心情 Post By:2021/12/13 14:03:00 [只看该作者]

用MessageBox.Show排查是在这个地方的代码运行出现闪退的,主要问题是如果有异常应该弹出报错框,不应该直接闪退啊!

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110443 积分:562081 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/12/13 14:30:00 [只看该作者]

1、去掉目录里的空格和括号试试
2、关闭服务器杀毒软件试试
3、使用循环内部使用try包起来:http://www.foxtable.com/webhelp/topics/2070.htm

建议还是使用ftp管理文件,共享文件夹这种方式处理,任意产生冲突,比如A在复制文件,B在删除文件,C在打开文件

 回到顶部
帅哥哟,离线,有人找我吗?
z769036165
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:760 积分:5430 威望:0 精华:0 注册:2012/10/5 21:53:00
  发帖心情 Post By: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判断也不行,不弹出判断,直接退。

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110443 积分:562081 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/12/24 17:23:00 [只看该作者]

不移动文件,测试有没有问题?去掉下面代码
FileSys.MoveFile(dr("文件位置"),w("本地地址"),True)

 回到顶部