如果我使用http URI,下面的代码对我来说很好,但对于等效的https替代方法却失败了。它在另一台机器上构建和运行时,或者当我将它包含在另一台应用程序中时,它可以正常工作。
GetStringAsync抛出异常:“.exe中的0x770B5722(KernelBase.dll)抛出异常:0x000006F4:将空引用指针传递给存根。发生”。
ThreadPool::RunAsync(ref new WorkItemHandler([this](IAsyncAction^ action)
{
HttpClient^ client = ref new HttpClient();
auto uri = ref new Uri(L"https://....");
auto t = create_task(client->GetStringAsync(uri));
t.then([](String^ response)
{
// response should be valid.
});
}));
答案 0 :(得分:1)
运行netsh winsock reset
重置网络堆栈似乎解决了这个问题!
答案 1 :(得分:0)
对我来说,网络堆栈重置根本无济于事,甚至设备重启也无济于事,但是您自己的回答向我指明了正确的方向:不是我的代码突然发疯了,而是Windows 。因此,对我而言真正有用的是在没有调试器的情况下启动应用程序(即从“开始”菜单)-从Visual Studio启动后,该应用程序仍然可以正常运行。现在已经发生了几次,我可以肯定它总是有帮助的。