从私有nuget服务器下载程序包时,将忽略端口号

时间:2018-05-17 13:23:24

标签: nuget port-number

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

机器正在暴露端口8082. nuget服务器可以通过http://domain:8082/nuget上的网络浏览器获得,发布工作正常。

现在我正在尝试启用VS2017来使用此nuget服务器中的软件包。添加新的包源“http://mydomain:8082/nuget”后,我可以浏览我的包,但Install-Package失败。显然,它在构建下载链接时会忽略端口号。

这是输出:

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

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

该问题是由网络基础结构设置引起的。端口8082已转发到端口80,而Nuget服务器正在侦听端口80。由于已重写URL,因此Nuget服务器无法知道正确的端口号,因此它以没有自定义端口号的下载链接进行响应。 >

一旦我在没有实际更改端口号的情况下创建了一个转发端口,即将8083更改为8083,并将Nuget服务器设置为侦听8083,一切正常。