【问题标题】:The port number is being ignored when downloading package from private nuget server从私有 nuget 服务器下载包时,端口号被忽略
【发布时间】:2018-05-17 13:23:24
【问题描述】:

我正在托管一个使用 Nuget.Server 包构建的私有 Nuget 服务器。

机器暴露了 8082 端口。nuget 服务器可通过网络浏览器在http://domain:8082/nuget 上使用,发布工作正常。

现在我正在尝试启用 VS2017 来使用来自这个 nuget 服务器的包。添加新包源“http://mydomain:8082/nuget”后,我可以浏览我的包,但安装包失败。显然它在构建下载链接时忽略了端口号。

这是输出:

PM> Install-Package MyPackage
Restoring packages for D:\someproject.csproj...
  GET https://www.nuget.org/api/v2/FindPackagesById()?id='Newtonsoft.Json'&semVerLevel=2.0.0
  GET https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Newtonsoft.Json'&semVerLevel=2.0.0
  GET http://mydomain:8082/nuget/FindPackagesById()?id='Newtonsoft.Json'&semVerLevel=2.0.0
  GET https://www.nuget.org/api/v2/FindPackagesById()?id='MyPackage'&semVerLevel=2.0.0
  GET https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='MyPackage'&semVerLevel=2.0.0
  GET http://mydomain:8082/nuget/FindPackagesById()?id='MyPackage'&semVerLevel=2.0.0
  OK http://mydomain:8082/nuget/FindPackagesById()?id='Newtonsoft.Json'&semVerLevel=2.0.0 44 мс
  OK http://mydomain:8082/nuget/FindPackagesById()?id='MyPackage'&semVerLevel=2.0.0 62 мс
  GET http://mydomain/nuget/Packages(Id='MyPackage',Version='1.0.1')/Download
  OK https://www.nuget.org/api/v2/FindPackagesById()?id='Newtonsoft.Json'&semVerLevel=2.0.0 431 мс
  OK https://www.nuget.org/api/v2/FindPackagesById()?id='MyPackage'&semVerLevel=2.0.0 441 мс
  OK https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='MyPackage'&semVerLevel=2.0.0 1436 мс
  OK https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Newtonsoft.Json'&semVerLevel=2.0.0 1471 мс
Unable to download package "MyPackage.1.0.1" из "http://mydomain/nuget/Packages(Id='MyPackage',Version='1.0.1')/Download".
Error while sending request.
  Unable to connect to remote server
  A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond <mydomain's IP here>:80

有没有办法解决这个问题?

【问题讨论】:

    标签: nuget port-number


    【解决方案1】:

    再补充一点,在项目或 IIS 的 Web.config 中取消注释元素 &lt;add key="aspnet:UseHostHeaderForRequestUrl" value="true" /&gt;。如果您在防火墙后面或 NugetServer 在不同的端口上运行,这很有用。对我来说,这行得通。

    【讨论】:

      【解决方案2】:

      问题是由网络基础设施设置引起的。 8082端口被转发到80端口,Nuget服务器正在监听80端口。由于url被重写,Nuget服务器无法知道正确的端口号,所以它响应了没有自定义端口号的下载链接。

      一旦我创建了一个端口转发而不实际更改端口号,即 8083 到 8083,并将 Nuget 服务器设置为侦听 8083,一切正常。

      【讨论】:

      • 取消注释 Web.config 中的元素 &lt;add key="aspnet:UseHostHeaderForRequestUrl" value="true" /&gt; 如果基础架构团队无法解决,也会有帮助。
      猜你喜欢
      • 2022-07-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-06
      • 2014-07-06
      • 1970-01-01
      • 2017-09-07
      • 2023-03-28
      相关资源
      最近更新 更多