Foxtable(狐表)用户栏目专家坐堂 → 上传图片和数据到服务端总是时不时有I/O操作错误


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

主题:上传图片和数据到服务端总是时不时有I/O操作错误

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


加好友 发短信
等级:一尾狐 帖子:463 积分:3792 威望:0 精华:0 注册:2013/2/20 11:07:00
上传图片和数据到服务端总是时不时有I/O操作错误  发帖心情 Post By:2019/11/5 16:06:00 [只看该作者]

错误信息如下:
简明错误信息:由于线程退出或应用程序请求,已中止 I/O 操作。
详细错误信息:System.Net.HttpListenerException: 由于线程退出或应用程序请求,已中止 I/O 操作。
   在 System.Net.HttpRequestStream.Read(Byte[] buffer, Int32 offset, Int32 size)
   在 System.IO.BufferedStream.ReadByte()
   在 Foxtable.RequestEventArgs.O   00 0(Stream A_0)
   在 Foxtable.RequestEventArgs.O  oO 0 ()
是不是升级到新版本就可以解决问题?
2019年10月22日更新

1、这次更新非常重要,以前的web服务有问题,在如果多人同时上传大文件,很容易搞崩服务器,测试方法很简单,
直接上传一个2G的文件,服务器肯定会内存溢出,新版本重写 了文件接收功能,现在就是同时上传了10几个G的文件,
服务器内存占用也不会明显增加了。
[此贴子已经被作者于2019/11/5 16:10:38编辑过]

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


加好友 发短信
等级:超级版主 帖子:110738 积分:563610 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/11/5 16:10:00 [只看该作者]


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


加好友 发短信
等级:一尾狐 帖子:463 积分:3792 威望:0 精华:0 注册:2013/2/20 11:07:00
  发帖心情 Post By:2019/11/5 16:12:00 [只看该作者]

不是的,我们都是安卓的手机提交的

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


加好友 发短信
等级:一尾狐 帖子:463 积分:3792 威望:0 精华:0 注册:2013/2/20 11:07:00
  发帖心情 Post By:2019/11/5 16:13:00 [只看该作者]

服务端用的是Foxtable

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


加好友 发短信
等级:超级版主 帖子:110738 积分:563610 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/11/5 16:14:00 [只看该作者]

那就先更新到最新版本。如果还有问题,使用日志跟踪一下运行情况

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


加好友 发短信
等级:一尾狐 帖子:463 积分:3792 威望:0 精华:0 注册:2013/2/20 11:07:00
  发帖心情 Post By:2019/11/5 16:23:00 [只看该作者]

日志情况就是 
2019-11-05 08:33:21[Server]简明错误信息:由于线程退出或应用程序请求,已中止 I/O 操作。
详细错误信息:System.Net.HttpListenerException: 由于线程退出或应用程序请求,已中止 I/O 操作。
   在 System.Net.HttpRequestStream.Read(Byte[] buffer, Int32 offset, Int32 size)
   在 System.IO.BufferedStream.ReadByte()
   在 Foxtable.RequestEventArgs.O   00 0(Stream A_0)
   在 Foxtable.RequestEventArgs.O  oO 0 ()
2019-11-05 08:33:21[Server]简明错误信息:由于线程退出或应用程序请求,已中止 I/O 操作。
详细错误信息:System.Net.HttpListenerException: 由于线程退出或应用程序请求,已中止 I/O 操作。
   在 System.Net.HttpRequestStream.Read(Byte[] buffer, Int32 offset, Int32 size)
   在 System.IO.BufferedStream.ReadByte()
   在 Foxtable.RequestEventArgs.O   00 0(Stream A_0)
   在 Foxtable.RequestEventArgs.O  oO 0 ()


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


加好友 发短信
等级:超级版主 帖子:110738 积分:563610 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/11/5 16:39:00 [只看该作者]

这个只是捕捉异常,不叫跟踪。

建个函数,代码:
Dim e As RequestEventArgs = args(0)

''记录接收的消息,方便分析,用于调试
Dim str As new StringBuilder
str.AppendLine("Headers:---------------")
For Each key As String In e.Request.Headers.AllKeys
    str.AppendLine(key & " = " &  e.Request.Headers(key))
Next

str.AppendLine("Headers:---------------")
str.AppendLine("host=" & e.Host)
str.AppendLine("port=" & e.Port)
str.AppendLine("path=" & e.Path)
str.AppendLine("HttpMethod=" & e.Request.HttpMethod)
str.AppendLine("poststring=" & e.PlainText)
str.AppendLine("ip=" & e.Request.RemoteEndPoint().Address.ToString())
str.AppendLine("getValues:---------------")
For Each key As String In e.getValues.Keys
    str.AppendLine(key & "=" & e.getValues(key))
Next
str.AppendLine("postValues:---------------")
For Each key As String In e.PostValues.Keys
    str.AppendLine(key & "=" & e.PostValues(key))
Next
'----------file
For Each key As String In e.Files.Keys
    str.AppendLine(key & " 上传" & e.Files(key).Count & "个文件,分别是:")
    For Each fl As String In e.Files(key)
        str.AppendLine(fl)
    Next
Next
'----------file
Functions.Execute("LogText",str.ToString)

然后在httprequest第一句调用这个函数。

 回到顶部