簡體   English   中英

HttpRequestException 消息中的不可讀文本

[英]unreadable text in HttpRequestException message

我向 Web 服務發出異步請求。 當我執行 task.Result 時,它會拋出一個 HttpRequestException。 但我無法讀取異常消息。 為什么會變成這樣? 如果我在 Asp.Net webforms 中從 Page_Load 運行它,我只會遇到這個問題。 如果我在單獨的控制台應用程序中編寫此代碼,它工作正常。 所以關於asp.net webforms 的一些事情正在產生問題。 有任何想法嗎?

代碼(異常發生在 .Result 行):

var task = Task.Run(async () =>
                {
                    return await client.RequestAccessTokenAsync(code);
                });

            token = task.Result;

異常信息:

{"\ \\b\\0\\0\\0\\0\\0\\0\\0 =o \ H \' \; \Q Q RRE U # W\ | õ  V& } {\\0 z;* Q;\\v , G 6F |\\6<2\\ j l \ U \ ! ! ޛ3 X\\t~ qc \ e \\a\Jv F H6X~ \d@ 1 I m :P ZTq 08 i\\n \\\n j B+\\tΈ\j \ X38t(\\t\ * \ e _ r \\"l\o@ . 5J T@z 2 L9\_. q # >\\b\ \˅ Q \ B. \\\0\\0"}

異常堆棧跟蹤:

在 Xero.NetStandard.OAuth2.Client.XeroClient.d__12.MoveNext() --- 從上一個拋出異常的位置的堆棧跟蹤結束 --- 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 在 System. Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at [classThatCallsWebService].<>c__DisplayClass3_0.<b__0>d.MoveNext()

異步方法在 WebForms 中的工作方式有所不同。 我們會,他們可以 您可以將事件方法標記為async void ,但這會帶來一些危險。 異步方法在作用於未完成Task的第一個await返回 但是如果方法是void ,則不能等待方法的其余部分。 有時這沒什么大不了的,有時卻是。

WebForms 有自己的方式來完全支持異步方法。

  1. 在該Page標記中使用Async="true"
  2. 使用RegisterAsyncTask注冊您的async方法。

完整文檔在這里: 在 ASP.NET 4.5 中使用異步方法

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM