2017-03-16 5 views
1

를 사용하지 않는 :비주얼 스튜디오 nuget 내가 된 HTTPS URL에 nuget의 인 TeamCity 피드를 생성 한 HTTPS 구성 피드를 사용하고 HTTP를 대신

내가 비주얼 스튜디오에서이 URL 또는 목록 패키지에 밀어

https://teamcity:xyz/httpAuth/app/nuget/v1/FeedService.svc/

그것은 작동하지만 패키지 관리 콘솔 또는 비주얼 스튜디오에서 Visual Nuget 패키지 관리 도구에서 패키지를 설치할 때 HTTP 피드에서 다운로드하려고 시도하지만 이것이 작동하지 않으며 팀 시간이 열려서 허용하기 때문에 시간 제한을 제공한다는 것을 알 수 있습니다 https 포트에.

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. 

그래서 Visual Studio에서 http를 사용하는 이유는 무엇입니까? 너겟 설정 파일을 보면 피드 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> 

답변

1

왜 비주얼 스튜디오 HTTP를 사용? 너겟 설정 파일을 보면 피드 URL이 HTTPS로 구성되어 있음을 알 수 있습니까?

TeamCity 서버가 다운로드 용으로 http url을 반환하고 nuget.exe/visual studio extension이 링크를 따라 가기 때문입니다. 이 경우 Visual Studio/Nuget은 HTTPS 구성된 피드를 사용하지 않고 대신 HTTP를 사용합니다.

게다가 NuGet 서버 (nuget.org)와 팀십은 https 포트에서만 허용되므로 http : //가 잘못되어 https : //로 리디렉션되는 모든 피드 링크와 인증이 엉망이됩니다. 이것은 또한 인증 헤더가 재전송되지 않음을 의미하므로 리다이렉트 루프가 발생합니다. 그러면 시간 초과 문제가 발생합니다.

이 문제를 해결하려면, 당신이 SSL을 종료 프록시 뒤에 제대로 작동하기 위해 지난 3 개 속성을 포함하도록 //conf/server.xml 섹션을 수정하려고 할 수 있습니다

<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의 the issue

을 참조하십시오.