Linux 上的 NuGet:获取响应流时出错

Posted

技术标签:

【中文标题】Linux 上的 NuGet:获取响应流时出错【英文标题】:NuGet on Linux: Error getting response stream 【发布时间】:2013-02-17 09:07:17 【问题描述】:

我正在尝试在 Linux (Ubuntu 12) 上运行 NuGet。我有 Mono 3.0.6(从源代码编译)。

$ mono --runtime=v4.0.30319 .nuget/NuGet.exe update -self
Checking for updates from https://nuget.org/api/v2/.
Error getting response stream (Write: The authentication or decryption has failed.): SendFailure

我收集到,该错误是由于某些证书(最有可能是 nuget.org 证书)不受信任所致。这个blog post has more details。

所以我跑了:

$ mozroots --import --sync
$ certmgr -ssl https://go.microsoft.com
$ certmgr -ssl https://nugetgallery.blob.core.windows.net
$ certmgr -ssl https://nuget.org

...无济于事。

NuGet 版本是 2.3.0.0(尽管我一开始使用的一些旧版本也无法正常工作)。

我该如何解决这个错误?

【问题讨论】:

您在导入 SSL 证书后是否遇到完全相同的错误? 老实说,我不记得在导入证书之前是否有所不同。 我只是想链接这篇相关的,很有帮助的文章dlafferty.blogspot.no/2013/08/… 【参考方案1】:

我可以通过将证书导入机器存储而不是用户存储(这是默认设置)来实现这一点:

$ sudo mozroots --import --machine --sync
$ sudo certmgr -ssl -m https://go.microsoft.com
$ sudo certmgr -ssl -m https://nugetgallery.blob.core.windows.net
$ sudo certmgr -ssl -m https://nuget.org

我在执行此操作之前验证了,即使在执行了基于用户存储的原始命令之后,the tlstest.exe tool 也失败了,并且在导入机器存储之后它成功了。

当然,对我来说最重要的是,nuget 也从那时开始工作。 :)

【讨论】:

如果您在第一个命令中遇到错误 - 请查看此答案:askubuntu.com/questions/331519/… 谢谢,这帮助我让 nuget 在 cloud9 上工作。 :-) 这帮助我在 Ubuntu 14.04/Trusty 上安装了 OmniSharp(用于 Mono),否则会失败并出现一个钝错误...... @AaronLerch 你是对的:[...].nuget/NuGet.targets: 错误:命令 'mono --runtime=v4.0.30319 [...]/NuGet.exe install "packages .config" -source "" -o "/opt/OmniSharpServer/packages"' 退出,代码为:1。 运行最后一条命令时,输出以:“*** WARNING: Certificate signature is INVALID *** Import this certificate into the CA store ?”结尾。这是正常的吗?这有点吓人。

以上是关于Linux 上的 NuGet:获取响应流时出错的主要内容,如果未能解决你的问题,请参考以下文章

OData 带更新的实例,并能取得元数据格式类型

尝试获取 json 响应时出错 [Flutter]

从 php 脚本获取响应时出错

使用 Jetty 9 从 HttpClient 获取响应时出错

SOAP UI:获取响应时出错;尝试连接到 Microsoft SQL Server 时为 null

获取广告响应Admob时出错