1
私はこれをデバッグしようと何時間も掛かっていますが、運はありません。私はC#ドライバでMongo 3.2を使用しています。私は問題をまだ表示している単純化されたバージョンに問題を縮小しました。Asp.net MongoDB ToListAsync()返さない
ToListAsync()が返さないという問題があるようです。 LoginHelper関数を同期に変更してToListAsync()の値をチェックしようとしましたが、結果が正しいかどうかを確認するための結果が表示されます。なぜこの非同期バージョンがうまくいかないのか分かりません。ここで
コードです:
public partial class Login : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e) {}
[System.Web.Services.WebMethod]
public static async Task<string> LoginUser(string username, string password)
{
string userId = await LoginHelper(username, password);
if (userId != "N/A")
{
//Do some stuff here
}
return userId;
}
public static async Task<string> LoginHelper(string userName, string password)
{
var client = new MongoClient("mongodb://localhost");
var database = client.GetDatabase(_databaseName);
var collection = database.GetCollection<BsonDocument>("Users");
//This is the trouble line
//If I remove this line the code will run fine and I'll see "N/A" returned in the JavaScript that calls LoginUser WebMethod
var documents = await collection.Find(new BsonDocument()).ToListAsync();
//The code never reaches this point, the above await never returns
return "N/A";
}
}
代わりにFindAsyncを使用しないのはなぜですか? –