2
情況是這樣的:我需要調用從ASP.NET第三方庫中的函數,但絕不允許異步運行
- 我使用的是第三方庫做一些SPF檢查
- 這些檢查是從ASP.NET網站
- 第三方庫使用的很多做「等待/異步」的代碼,雖然我打電話非異步方法去做
- 最的時候,w3wp(是的,實際的w3wp.exe)簡單地崩潰,出現以下錯誤:模仿的無效標記 - 它不能被複制「。
我假定這是因爲的await /異步抓起從具有某種上非法/怪異身份的線程池線程,所以我想知道是否有任何方法來調用一些代碼,並告訴.Net'忘記'異步/等待,並在同一個線程上同步運行。
您可以創建一個自定義同步上下文,但只有在庫不會通過調用'ConfigureAwait(false)'來故意避免當前同步上下文的情況下才能工作*。不幸的是,這確實傾向於編寫圖書館。 –
如果問題對於庫和使用情況非常特殊,它只會是可以爲您提供指導(或確認它可以與ASP.NET一起使用)的供應商。我懷疑事實是這個庫不是專爲ASP.NET環境設計的(因爲它似乎需要某些模擬設置)。 –
@Damien_The_Unbeliever看起來庫不包含源代碼中任何地方的ConfigureAwait,所以我將探討自定義同步上下文的可能性。謝謝你的提示! – Drak