我已經實現了基於此Microsoft example的AuthenticateAsync。實現System.Web.Http.Filters.IAuthenticationFilter.AuthenticateAsync()包含對數據庫的阻止調用
按照本例中,AuthenticateAsync()包含
IPrincipal principal = await AuthenticateAsync(userName, password, cancellationToken);
,我已經實現,使通過System.Data.SqlClient.SqlConnection到SQL Server數據庫的呼叫(在I/O阻塞) - 這導致警告
這個異步方法缺少'await'操作符並且會同步運行。
的docs說AuthenticateAsync必須返回
任務是將進行認證。
我認爲
- 忽略警告
- 不是不知道爲什麼微軟宣佈IAuthenticationFilter.AuthenticateAsync 異步。也許IIS想推遲執行?
- 裹在Task.Run阻塞調用()
- 難道這雙昂貴的線程數IIS使用?
什麼應該我幹什麼?
阻止AuthenticateAsync內部可以嗎?
這是SQL Server數據庫通過System.Data.SqlClient.SqlConnection(更新問題現在) –
在這種情況下,您可以使用SqlCommand的async-methods。 f.x:var reader = await sqlCommand.ExecuteReaderAsync() – Falle1234
https://msdn.microsoft.com/zh-cn/library/system.data.sqlclient.sqlcommand_methods(v = vs.110).aspx – Falle1234