当前位置: 首页 > 知识库问答 >
问题:

C#Web API服务-HttpRequestException:将内容复制到流时出错

呼延曜灿
2023-03-14
    null

在服务器上,我有以下一行读取整个请求体,这里有什么问题吗?

var task = Request.Content.ReadAsStringAsync();

在课堂上

  [RoutePrefix("api/Stream/{actionType}/{user}")]
  public class StreamSubs : ApiController
  {
     [Route("Justs"), HttpPost]
    public int SubTokens(string user, string actionType)//, [FromBody] List<int> tokens)
    {
      var tokens = ReadRequestContent(user);
      if (tokens == null)
        return -1;
      DoSubs(user, actionType, tokens);
      return 1;
    }

    internal List<int> ReadRequestContent(string user)
    {
      var liststr = "";
      try
      {
        var task = Request.Content.ReadAsStringAsync();
        var delay = Task.Delay(TimeSpan.FromSeconds(Utils.HttpReadRequestContentTimeoutInSeconds));
        var timeoutTask = Task.WhenAny(task, delay);
        if (timeoutTask.Result != task)
        {
          Log.Trace("StreamSub --- {0} --- Read request content timeout", _streamType);
          return null;
        }
        var tstr = task.Result;
        var len = Request.Content.Headers.ContentLength;
        if (len != null && len != tstr.Length)
        {
          Log.Trace("{2} subs length mismatch. HL: {0}, DL: {1}", len, tstr.Length, _streamType);
          return null;
        }

        liststr = tstr;
        if (tstr != null)
        {
          if (tstr.Length > 0)
          {
            if (!tstr.Contains("null"))
            {
              try
              {
                //process the string
              }
              catch (JsonSerializationException jexp1) { }
              catch (JsonReaderException jexp2) { }
              catch
              {
                Log.Error("Exception in ReadRequestContentIndices() - INT- Tokens List - " + liststr);
              }
            }
          }
        }

      }
      catch (Exception e)
      {
        //if (DateTime.Now.TimeOfDay <= System.TimeSpan.Parse("14:30:00"))
        //{
        Log.Error("Exception in ReadRequestContent() - INT - Tokens List - " + liststr);
        //}        
        Log.Error(e);
      }
      return null;
    }
  }

共有1个答案

萧萧迟
2023-03-14

你查过CSHARP-1160了吗?

它基本上是说您需要将?connect=replicaset追加到您的连接字符串。

实际上,我们已经区分了连接到独立服务器和直接连接到副本集成员,后者相对不常见。不幸的是,Mongolab的单节点设置实际上是一个单节点副本设置,这导致我们不信任它。您可以通过将?connect=replicaset附加到连接字符串来修复此问题。它将强制驱动程序移动到副本集模式,所有将工作。

 类似资料:
  • 我正在尝试注册一个客户端到spring-eureka-server,客户端在注册后就注销了 Eureka-客户端日志: 请告诉我有什么可能出了问题。

  • 问题内容: 我已经实现了回收卡视图,并想使用按钮单击方法来复制cardView的内容。cardview中有两个文本,我只想复制内容,不同的卡片不同。我怎样才能做到这一点?这是我的Cardview适配器。 v.content.getText()。toString(),无法解析内容。 问题答案: 尝试以下

  • 但是,我得到以下错误: 现在我注意到它在/home/graffixnyc/android-studio/gradle/m2repository/com/google/gms/play-services/11.0.4/play-services-11.0.4.pom中查找 但是,我的位置是:/home/graffixnyc/android-sdk/extras/google/m2repository

  • 是否可以使用Discord中的bot将新邮件从X服务器Y频道复制到我的X服务器Y频道?我想从中复制消息的服务器是我作为用户连接的官方游戏服务器(在Discord上),我的服务器是我想发送新闻和更新公告的游戏的公会服务器。 对不起我的英语

  • 问题内容: 我有一个目录/ a / b / c,其中包含文件和子目录。我需要将/ a / b / c / *复制到/ x / y / z目录中。我可以使用哪些python方法? 我试过了,但是python尝试创建/ x / y / z并引发一个。 问题答案: 我发现此代码有效: 参考: Python 2:https://docs.python.org/2/distutils/apiref.html