Visual studio 2015 Visual studio nuget未使用HTTPS配置的源,而是使用HTTP
我已经在https url上创建了nuget teamcity提要: 当我在visual studio中推送到此url或列表包时,它可以工作,但当我从包管理控制台或visual studio中的visual nuget包管理工具安装包时,我看到它尝试从http提要下载,但这不起作用,并给出一个超时,因为teamcity仅在https端口上打开并允许Visual studio 2015 Visual studio nuget未使用HTTPS配置的源,而是使用HTTP,visual-studio-2015,nuget,nuget-package,nuget-server,Visual Studio 2015,Nuget,Nuget Package,Nuget Server,我已经在https url上创建了nuget teamcity提要: 当我在visual studio中推送到此url或列表包时,它可以工作,但当我从包管理控制台或visual studio中的visual nuget包管理工具安装包时,我看到它尝试从http提要下载,但这不起作用,并给出一个超时,因为teamcity仅在https端口上打开并允许 Retrieving package 'Test 1.0.0' from 'SAI'. GET http://teamcity:xyz
Retrieving package 'Test 1.0.0' from 'SAI'.
GET http://teamcity:xyz/httpAuth/app/nuget/v1/FeedService.svc/download/Package/4646:i d/Test.1.0.0.0.nupkg
I receive a timeout :
Retrieving package 'Test 1.0.0' from 'TEST'.
GET http://teamcity:xyz/httpAuth/app/nuget/v1/FeedService.svc/download/Test/4646:id/T est.1.0.0.0.nupkg
....
...
has timed out after 100000ms.
那么,为什么VisualStudio使用http呢?当我查看nuget配置文件时,我可以看到提要url是用HTTPS配置的
<packageSources>
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
<add key="nuget.org" value="https://www.nuget.org/api/v2/" />
<add key="TEST" value="https://teamcity:xyz/httpAuth/app/nuget/v1/FeedService.svc/" />
</packageSources>
为什么VisualStudio使用http?当我查看nuget配置文件时,我可以看到提要url是用HTTPS配置的
<packageSources>
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
<add key="nuget.org" value="https://www.nuget.org/api/v2/" />
<add key="TEST" value="https://teamcity:xyz/httpAuth/app/nuget/v1/FeedService.svc/" />
</packageSources>
这是因为TeamCity服务器返回一个用于下载的http url,而nuget.exe/visualstudio扩展只跟随该链接。在本例中,VisualStudio/nuget没有使用HTTPS配置的提要,而是使用HTTP
此外,NuGet服务器(NuGet.org)和teamcity只允许在https端口上使用,因此所有提要链接和身份验证都会出错,因为http://不正确,将被重定向到https://。这也意味着不会重新发送auth头,因此会导致重定向循环。然后我们将获得超时问题
要解决此问题,您可以尝试修改//conf/server.xml部分,以包含最后3个属性,使其在SSL终止代理后正常运行:
<Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"
connectionTimeout="60000"
redirectPort="8543"
useBodyEncodingForURI="true"
socket.txBufSize="64000"
socket.rxBufSize="64000"
tcpNoDelay="1"
secure="true"
scheme="https"
proxyPort="443"
有关更多详细信息,请参阅GitHub上的