为了账号安全,请及时绑定邮箱和手机立即绑定

ASP.NET WebAPI中的无限方法执行(Mongodb反序列化)

ASP.NET WebAPI中的无限方法执行(Mongodb反序列化)

C#
慕尼黑8549860 2022-01-16 15:18:11
简而言之:默认Console Application项目中的方法工作正常,但在另一个项目(asp.net WebAPI)中相同的方法不起作用。我有两个 mongoDB 集合,如下所示。主题集合的示例文档(JSON):{        "_id" : ObjectId("5b9a2637635d16b2a2c5c562"),        "userId" : ObjectId("5b9a23d1a54d26b98f6acf34"),        "name" : "someName",        "notes" : [                {                        "date" : ISODate("2012-11-20T05:05:15.229Z"),                        "title" : "someTitle",                        "body" : "Note body - long teeeeeeext",                        "files" : [ ]                }        ]}用户集合示例文档:{        "_id" : ObjectId("5b9a23d1a54d26b98f6acf34"),        "loginName" : "someName",        "pass" : "hashedpassword"}我写了几个类(POCO Representation):public class Subject{    [BsonElement("_id")]    public ObjectId Id { get; set; }    [BsonElement("name")]    public string Name { get; set; }    [BsonElement("notes")]    public List<Notes> Notes { get; set; }    [BsonElement("userId")]    public ObjectId UserId { get; set; }}public class Notes{    [BsonElement("date")]    [BsonRepresentation(BsonType.DateTime)]    public DateTime Date { get; set; }    [BsonElement("title")]    public string Title { get; set; }    [BsonElement("body")]    public string Body { get; set; }    [BsonElement("files")]    public List<ObjectId> Files { get; set; }}public class User{    [BsonElement("_id")]    public ObjectId Id { get; set; }    [BsonElement("loginName")]    public string LoginName  { get; set; }    [BsonElement("pass")]    public string HashedPass { get; set; }}
查看完整描述

1 回答

?
婷婷同学_

TA贡献1844条经验 获得超8个赞

是不是死锁了?如果是这样,那是因为您混合了异步和非异步代码,并且在尝试重新捕获同步上下文时发生了死锁。使代码一直异步。


public async Task<IEnumerable<User>> Get()

{

    List<User> users = await MongoDataModel.Instance.GetUsers(MongoDataModel.Instance.CurrentMongoDB);


    TestMethod();


    return users;

}

有关详细信息,请参阅标记的副本

您应该使用与 microsoft 相同的命名约定,即返回Task或Task<T>应以Asyncso rename GetUsersto为后缀的任何内容GetUsersAsync。

如果要使用它,请在整个调用堆栈中使用异步。


查看完整回答
反对 回复 2022-01-16
  • 1 回答
  • 0 关注
  • 172 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信