Foxtable(狐表)用户栏目专家坐堂 → httprequest 请教


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

主题:httprequest 请教

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


加好友 发短信
等级:幼狐 帖子:53 积分:536 威望:0 精华:0 注册:2021/11/25 17:17:00
httprequest 请教  发帖心情 Post By:2023/3/7 8:39:00 [显示全部帖子]

通过  httprequest 做webserver

里面有很多代码   例如
 addnew ,
 find ,  
Dim cmd As new SQLCommand


但访问的时候 经常会弹出  未将设置应用到对象实例 ,好像没有初始化 一样,

请问是不是并发太多  对应不过来导致的呢

这个要怎么解决?



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


加好友 发短信
等级:幼狐 帖子:53 积分:536 威望:0 精华:0 注册:2021/11/25 17:17:00
  发帖心情 Post By:2023/3/7 11:20:00 [显示全部帖子]

 这些代码单独进行 都 没有问题 ,而且 情况偶发!

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


加好友 发短信
等级:幼狐 帖子:53 积分:536 威望:0 精华:0 注册:2021/11/25 17:17:00
  发帖心情 Post By:2023/3/8 8:44:00 [显示全部帖子]

篮板 请教  我在 httprequest  是这么写的
    Case "pdaconnection.htm"
        try
            
            e.AsyncExecute = True  '通知系统,将采用异步方式生成网页
            Functions.AsyncExecute("sqlwrite", e) '异步调用函数生成网页
        Catch ex As Exception
                          Dim dr As DataRow = DataTables("表A").AddNew()
                 dr("第一列") = e.path
                 dr("第二列") = ex.tostring
                  dr.Save

        End Try



里面的代码时这样的, 
        Dim  drf  As DataRow = DataTables("YW_出入库明细").SQLFind("二维码 = '" & neirong & "'")
        If drf Is Nothing Then
            Dim drf1 As DataRow = DataTables("YW_原材料入库贴码单").SQLFind("二维码 = '" & neirong & "'")
            If drf1 IsNot Nothing Then
                Dim drs As List(of DataRow)
                drs = DataTables("YW_原材料入库贴码单").SQLSelect("收货单明细guid = '" & drf1("收货单明细guid") & "'")
                For Each dr As DataRow In drs
                    Dim dra As DataRow = DataTables("YW_出入库明细").AddNew
                    dra("guid") = Guid.NewGuid.toString()
                    dra("创建人guid") = dra("guid")
                    dra("创建日期") = Date.Now
                    dra("产品guid") = dr("产品guid")
                    dra("产品品番") = dr("产品品番")
                    dra("收容数") = dr("收容数")
                    dra("单位") = dr("单位")
                    dra("作业者") = tablename.Split("|")(0)
                    dra("作业时间") = Date.Now
                    dra("方向") = "入"
                    dra("二维码") = dr("二维码")
                    dra("货位号") = tablename.Split("|")(1)
                    dra("批次号") = dr("批次号")
                Next
                DataTables("YW_出入库明细").Save
            End If
            Return "add ok"
        Else
            Return "already exists"
        End If


经常会卡死 程序无响应 这样子!  ,但是 也没看到 有什么异常输出 ,就是卡住 , 这种情况 偶发 较多

另外 加入了 try catch 后 服务端卡死的情况好像更多!
[此贴子已经被作者于2023/3/8 8:46:27编辑过]

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


加好友 发短信
等级:幼狐 帖子:53 积分:536 威望:0 精华:0 注册:2021/11/25 17:17:00
  发帖心情 Post By:2023/3/8 15:14:00 [显示全部帖子]

 篮板 我的访问量也不大 我全部没用异步线程了

但是 ,访问到 以下代码

通过  httprequest 做webserver

代码写在函数里面

        Dim  drf  As DataRow = DataTables("出入库明细").SQLFind("二维码 = '" & neirong & "'")
        If drf Is Nothing Then
            Dim drf1 As DataRow = DataTables("原材料入库贴码单").SQLFind("二维码 = '" & neirong & "'")
            If drf1 IsNot Nothing Then
                Dim drs As List(of DataRow)
                drs = DataTables("原材料入库贴码单").SQLSelect("收货单明细guid = '" & drf1("收货单明细guid") & "'")
                For Each dr As DataRow In drs
                    Dim dra As DataRow = DataTables("出入库明细").AddNew
                    -----------等等
                 next
            endif
        endif

提示  加载   原材料入库贴码单 失败!

这个情况也是偶发, 这是怎么弄好呢 ,这个表 肯定是有的

[此贴子已经被作者于2023/3/8 15:14:26编辑过]

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


加好友 发短信
等级:幼狐 帖子:53 积分:536 威望:0 精华:0 注册:2021/11/25 17:17:00
  发帖心情 Post By:2023/3/8 16:14:00 [显示全部帖子]

篮板,我把查询的 都用  SQLCommand 操作, 但是

1: 出来的表 存在 临时的 datatable 里面可以吗?
2: 通过 datatables("adfc").addnew()  这样 有影响吗?

        Dim cmd As new SQLCommand
        cmd.C
        cmd.CommandText = "s elect * from YW_原材料订单 where guid = '" & order_guid & "'"
        Dim dt As DataTable = cmd.ExecuteReader
       
        for each dr as datarow in dt.datarows 
              dim dra as datarow = datatables("adfc").addnew()
       next


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


加好友 发短信
等级:幼狐 帖子:53 积分:536 威望:0 精华:0 注册:2021/11/25 17:17:00
  发帖心情 Post By:2023/3/8 16:25:00 [显示全部帖子]

 暂时还没不知道 要 早上使用高峰期才知道效果!

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


加好友 发短信
等级:幼狐 帖子:53 积分:536 威望:0 精华:0 注册:2021/11/25 17:17:00
  发帖心情 Post By:2023/3/13 10:03:00 [显示全部帖子]

篮板 , 用了 SQLCommand  还是有点问题 ,我做了 你上边的 异常处理 也没有用.

没有保存任何的异常信息及  也没有出现报错. 但是,foxtable  会出现不定时的 卡死现象, 
 
我 有3个访问的  每秒一次  ,其他的 不定时,

不知道是不是  sql 语句 访问出现 拥挤导致的, 不明白什么原因

 但卡死 等30分钟也不会恢复!

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


加好友 发短信
等级:幼狐 帖子:53 积分:536 威望:0 精华:0 注册:2021/11/25 17:17:00
  发帖心情 Post By:2023/3/23 16:59:00 [显示全部帖子]

 蓝版 ,还是搞不定,帮忙看看 , 系统 我做了错误行为记录,

没有报任何错误,但是系统 还是会卡死!(发生频率大概1天2次)

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:sqlwerver.foxdb


帮忙看看

代码 都在 httprequest  及内部函数里面.

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


加好友 发短信
等级:幼狐 帖子:53 积分:536 威望:0 精华:0 注册:2021/11/25 17:17:00
  发帖心情 Post By:2023/3/23 17:44:00 [显示全部帖子]

谢谢 蓝版  我做日志 观察下先,


再请教下

   我之前做了 很多  异步函数 。   

但是系统 还会是出现闪退的现象。

这样子对吗


我是按帮助 这样写的

httprequest

    Case "yichangchuli.htm\1014"
        
        
        Dim dr As DataRow = DataTables("表C").AddNew
        DR("第一列") = "yichangchuli.htm\1014"
        dr.Save
        If   e.Request.HttpMethod = "GET"
            
            e.AsyncExecute = True  '通知系统,将采用异步方式生成网页
            Functions.AsyncExecute("yichangchuli1014",e)

        End If


内部函数

Dim e As RequestEventArgs = args(0)

Dim jax As New Jarray '定义数组
Dim drs As List(of DataRow) = DataTables("YW_点检异常记录").SQLSelect("创建日期 > '" & Date.today.AddDays(-1) & "' and 机台号 In ('HC-10','HC-11','HC-12','HC-13','HC-14')","创建日期 desc")
For i As Integer = 0 To 4
Dim jo As new JObject
If drs.Count >= i + 1 Then
            jo("jitaihao") = drs(i)("机台号").tostring()
            jo("shijian") = drs(i)("作业时间").Tostring()
            jo("yichangneirong") = drs(i)("项目").Tostring() & "结果:" &  drs(i)("判定标准").Tostring()
            jo("chuzhineirong") = drs(i)("处理内容").tostring()
            jo("chuzhizhe") = drs(i)("点检者").tostring()
            jo("pinzhiquerenzhe") = drs(i)("处理者").Tostring()
Else
            jo("jitaihao") = " "
            jo("shijian") = " "
            jo("yichangneirong") = " "
            jo("chuzhineirong") = " "
            jo("chuzhizhe") = " "
            jo("pinzhiquerenzhe") = " "
End If
jax.add(jo)
Next
'
e.WriteString(jax.Tostring)   '做web服务器 , 向pda 返回结果
e.Handled = True '通知系统异步函数执行完毕,可以关闭信道



 回到顶部