以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  服务端未响应  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=111252)

--  作者:fubblyc
--  发布时间:2017/12/18 17:36:00
--  服务端未响应
老师,服务端一打开就无响应,死掉。有访问记录:
2017-12-18 17:17:02.9468

2017-12-18 17:17:02.9624
srqcx.htm
2017-12-18 17:17:02.9780

2017-12-18 17:17:12.0093
srqcx.htm
2017-12-18 17:17:18.6187
srqcx.htm
2017-12-18 17:17:28.5406
srqcx.htm
2017-12-18 17:17:40.8844
srqcx.htm
2017-12-18 17:18:17.5719
GetAccessToken
2017-12-18 17:19:08.5721
GetAccessToken
2017-12-18 17:19:28.6971
GetAccessToken
2017-12-18 17:20:06.8847
srqcx.htm
2017-12-18 17:22:26.2443
srqcx.htm

最后一次是srqcx,所以给注释掉,只输出一句话。
我自己访问可以,后面别人访问,又死掉
然后一重启,就马上死掉。
不知道什么原因。。。

        Case "srqcx.htm"
        Functions.Execute("srqcx",e)

函数srqcx的代码:
Dim e As  RequestEventArgs = args(0)
e.WriteString("请稍后,正在维护系统")

--  作者:有点甜
--  发布时间:2017/12/18 17:42:00
--  

下面代码的外面,还有没有代码?把其余代码全部注释掉,单独留下面这句测试。

 

Case "srqcx.htm"

        Functions.Execute("srqcx",e)

--  作者:fubblyc
--  发布时间:2017/12/18 18:25:00
--  
甜老师,我放在文本里
[此贴子已经被作者于2017/12/18 20:43:12编辑过]

--  作者:fubblyc
--  发布时间:2017/12/18 19:30:00
--  
还有一个现象:
访问记录里没有,但是FT的CPU和内存却在增加,好像有在运行。
然后一会就死掉了。

--  作者:有点蓝
--  发布时间:2017/12/18 20:38:00
--  
最后一句有问题:e.WriteString(sb.ToString)
前面case里的函数应该都有e.WriteString代码了,相当每一次访问都WriteString了2次,这是有冲突的,一次访问只能调用一次WriteString。

后面一段授权测试的代码不知道是干嘛用的?

另外,除了回调必须使用80或者443端口外,微信里调用的网页是不限端口的。如果是不同的业务功能,可以分开多个不同端口的服务端项目使用,没有必要全部都凑到一个项目里。像官方微信订单管理、考试管理、考试管理PC版就是分开3个项目的,由其中一个项目统一做授权,然后跳转到其它项目的服务,不同项目之间通过OpenQQ同步数据或者直接操作后台数据。

--  作者:fubblyc
--  发布时间:2017/12/18 20:45:00
--  
哦哦。 只有回调才需要限定。回调是指什么。。。 调用sdk的拍照,上传图像,这种叫回调吗?
--  作者:有点蓝
--  发布时间:2017/12/18 20:55:00
--  
不是,这里接口配置信息中的url需要限制端口:http://www.foxtable.com/mobilehelp/scr/0175.htm,这种在微信中就叫回调接口

还有,授权的网页、调用sdk的网页也必须是80端口。不过一般在入口网页做授权(登录页,首页)即可,没有必要所有网页都做授权

--  作者:fubblyc
--  发布时间:2017/12/18 21:52:00
--  
蓝老师,这段好像也有问题,一访问这个页面,马上死掉:
sql语句是没问题,我测试了。
就是好像 dr = dt.DataRows(0)  这个有问题
Dim cmd As New SQLCommand
Dim dt As DataTable
cmd.C
cmd.CommandText = "SELEC T name,password,部门,直接上级,间接上级,账号,铁三角,[group],门店编号 From {用户数据表2} where [Name] = \'" & UserName & "\' or 门店编号 = \'" & UserName & "\'"
dt = cmd.ExecuteReader()
Dim dr As DataRow = dt.DataRows(0)  之前是用sqlfind,昨天改成这个
If dr IsNot Nothing Then
    If  Password = dr("Password") Then
        Verified  = True
        wb.AppendCookie("bumen",dr("部门")) \'在客户端存储Cookie
        wb.AppendCookie("zhangtao",dr("账号")) \'在客户端存储Cookie
        wb.AppendCookie("zjsj",dr("直接上级")) \'在客户端存储Cookie
        wb.AppendCookie("jjsj",dr("间接上级")) \'在客户端存储Cookie
        wb.AppendCookie("group",dr("group")) \'在客户端存储Cookie
        wb.AppendCookie("tsj",dr("铁三角")) \'在客户端存储Cookie
        wb.AppendCookie("mdbh",dr("门店编号")) \'在客户端存储Cookie 其实和username一样
    End If
End If


If Verified AndAlso e.Path = "logon.htm"  Then \'如果用户访问的是登录页,且身份验证成功
    wb.AppendCookie("username",UserName) \'将用户名和密码写入cookie
    wb.AppendCookie("password",Password)
    wb.InsertHTML("<meta http-equiv=\'Refresh\' c>") \'直接跳转到首页
    e.WriteString(wb.Build) \'生成网页
    Return  \'必须的
End If
[此贴子已经被作者于2017/12/18 21:53:51编辑过]

--  作者:有点蓝
--  发布时间:2017/12/18 22:09:00
--  
……
dt = cmd.ExecuteReader()
If dt.DataRows.count > 0 Then
    Dim dr As DataRow = dt.DataRows(0)  之前是用sqlfind,昨天改成这个
    If dr IsNot Nothing Then
        If  Password = dr("Password") Then
            Verified  = True
            wb.AppendCookie("bumen",dr("部门")) \'在客户端存储Cookie
            wb.AppendCookie("zhangtao",dr("账号")) \'在客户端存储Cookie
            wb.AppendCookie("zjsj",dr("直接上级")) \'在客户端存储Cookie
            wb.AppendCookie("jjsj",dr("间接上级")) \'在客户端存储Cookie
            wb.AppendCookie("group",dr("group")) \'在客户端存储Cookie
            wb.AppendCookie("tsj",dr("铁三角")) \'在客户端存储Cookie
            wb.AppendCookie("mdbh",dr("门店编号")) \'在客户端存储Cookie 其实和username一样
        End If
    End If
End If
……

--  作者:fubblyc
--  发布时间:2017/12/27 20:41:00
--  
恩恩。这也是我犯的低级错误!!谢谢蓝老师!!