gpt4 book ai didi

c# - 在可移植类库中使用 await HttpClient.GetAsync 的异常

转载 作者:行者123 更新时间:2023-11-30 15:35:06 25 4
gpt4 key购买 nike

我有可移植类库(net40+sl4+win8+wp71),代码:

    public static async Task<Dictionary<string, FeedItem>> GetFeeds()  
{
try
{
string data;
using (HttpMessageHandler handler = new HttpClientHandler())
{
using (HttpClient httpClient = new HttpClient(handler))
{
data = await httpClient.GetStringAsync(FeedsUrl + Guid.NewGuid()).ConfigureAwait(false);
}
}

if (data != null)
{
//...
}
return null;
}
catch
{
return null;
}
}

引用了 Microsoft.Bcl、Microsoft.Bcl.Async 和 Microsoft.Net.Http。

我在 Windows 8 Metro 应用程序中使用这个库。然后我通过VS2012调试应用程序,就可以了。但是当我创建应用程序包并安装它时,应用程序每次在首次启动时崩溃并出现错误:

Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.Runtime.InteropServices.COMException
Stack:
at System.Runtime.CompilerServices.AsyncMethodBuilderCore.<ThrowAsync>b__1(System.Object)
at System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(System.Object)
at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
at System.Threading.ThreadPoolWorkQueue.Dispatch()
at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()

编辑:如果我注释行“data = await httpClient.GetStringAsync”,它将无一异常(exception)地工作。

在第二次启动时它始终有效。

有什么建议吗?

最佳答案

这些包具有特定于框架的实现。您可能会遇到问题,因为您没有从 Win8 应用程序中引用特定于框架的程序集。

您能否尝试从您的应用程序中引用 Nuget 包,看看它是否能解决问题? Nuget 不会在堆栈上安装包,因此当您创建一个使用另一个 Nuget 包的类库时,您需要手动将该 Nuget 包添加到引用该类库的项目中。

当类库通过包依赖项打包为 nupkg 时,这会透明地发生,但是当您使用项目或二进制引用时,您需要自己完成。

关于c# - 在可移植类库中使用 await HttpClient.GetAsync 的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15396981/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com