HttpClient->;GetStringAsync()为https URI抛出0x000006F4

HttpClient->;GetStringAsync()为https URI抛出0x000006F4,https,windows-runtime,uwp,windows-store-apps,httpclient,Https,Windows Runtime,Uwp,Windows Store Apps,Httpclient,如果我使用http URI,下面的代码对我来说很好,但对于等效的https替代方案,代码失败。当它在另一台机器上构建并运行时,或者当我将它包含在另一个应用程序中时,它工作正常 GetStringAsync引发异常:“在.exe中的0x770B5722(KernelBase.dll)引发异常:0x000006F4:向存根传递了空引用指针。已发生” ThreadPool::RunAsync(ref new WorkItemHandler([this](IAsyncAction^ action) {

如果我使用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.
    });
}));

运行
netsh winsock reset
重置网络堆栈似乎可以解决此问题

对我来说,网络堆栈重置根本没有帮助,甚至设备重新启动也没有帮助,但你自己的回答为我指明了正确的方向:不是我的代码突然发疯了,是Windows。所以,在我的例子中,真正有帮助的是在不使用调试器的情况下启动应用程序(即,从“开始”菜单)——在从VisualStudio启动应用程序后,该应用程序仍然可以正常工作。现在这种情况已经发生过好几次了,我可以证实它总是有帮助的