我正在托管使用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
有没有办法解决这种问题?
答案 0 :(得分:1)
再补充一点,在您的项目或 IIS 的 Web.config 中取消对元素 <add key="aspnet:UseHostHeaderForRequestUrl" value="true" />
的注释。如果您在防火墙后面或您的 NugetServer 在不同端口上运行,这将很有用。对我来说,这很管用。
答案 1 :(得分:0)
该问题是由网络基础结构设置引起的。端口8082已转发到端口80,而Nuget服务器正在侦听端口80。由于已重写URL,因此Nuget服务器无法知道正确的端口号,因此它以没有自定义端口号的下载链接进行响应。 >
一旦我在没有实际更改端口号的情况下创建了一个转发端口,即将8083更改为8083,并将Nuget服务器设置为侦听8083,一切正常。