2011-10-10 24 views
14

Tôi đang cố gắng sử dụng Nuget trong VS2010 tại nơi làm việc. Khi tôi thử tải xuống các gói từ nguồn cấp dữ liệu chính thức, nó luôn không thành công với 403.Truy cập Nguồn gói chính thức của Nuget phía sau proxy công ty

Tôi đã đọc Nuget sẽ sử dụng các cài đặt proxy tương tự như IE, điều không may cho tôi khi IE của tôi bị khóa. Tôi không thể thay đổi proxy.

Tôi đã bỏ qua các url dịch vụ nguồn cấp dữ liệu đang bị trả về, trong IE tôi gặp lỗi, trong Firefox (với proxy.pac đã xác định cục bộ) các url giải quyết tốt và tôi có thể thấy nguồn cấp dữ liệu.

Có cách nào để định cấu hình thủ công Nuget không sử dụng cài đặt của IE không?

Trả lời

21

Nếu bạn không thể ngoại trừ thêm vào proxy của bạn, hoặc chỉ muốn một giải pháp ngay lập tức sau đó chỉnh sửa tập tin cấu hình Visual studio của bạn (devenv.exe.config) nằm trong thư mục cài đặt Visual Studio của bạn (ví dụ: - C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE) và thay đổi/thêm phần <system.net> cấu hình như sau, mà sẽ cho phép làm việc với Visual Studio proxy:

<system.net> 
    <defaultProxy useDefaultCredentials="true" enabled="true"> 
     <proxy proxyaddress="http://<Insert proxy address here>" /> 
    </defaultProxy> 
    <settings> 
     <servicePointManager expect100Continue="false" /> 
     <ipv6 enabled="true" /> 
    </settings> 
</system.net> 

Tất cả các bạn cần làm là thay đổi <Insert proxy address here> thành địa chỉ proxy của công ty bạn. Cũng tùy thuộc vào cài đặt proxy của bạn, bạn có thể sử dụng các thông báo Expect100Continue và có thể không cần phải thay đổi yếu tố cấu hình đó. Bạn có thể tìm thêm thông tin here

+4

Chỉ cần thêm vào đó, tệp .config có thể cần phải được chỉnh sửa làm Quản trị viên vì thư mục Tệp Chương trình được bảo vệ nhiều hơn trước đây. –

+0

Có tệp cấu hình tương tự cho TFS trên máy chủ xây dựng không có VS được cài đặt không? Tôi có thể thấy điều này trở thành một vấn đề đối với tôi sau này ... –

2

Tôi đã quản lý bộ phận CNTT để cho phép truy cập không giới hạn vào các gói .nuget.org, để sắp xếp nó. Chúng tôi sử dụng sophos ở đây và bất kỳ yêu cầu web nào mà nó không thích giao diện bị chặn. Điều này áp dụng cho các url nuget. Cách giải quyết là sử dụng Trình quản lý gói thư viện để bắt đầu cài đặt với trình điều khiển đang chạy. Sau đó, sao chép url đã bị cấm vào trình duyệt của tôi và nói với các nhà phân tích là được rồi. sau đó tôi có thể Install-Package thành công

hy vọng điều này giúp bất cứ ai bị mắc kẹt đằng sau một bức tường lửa chiến

13

Sau đây là một câu hỏi liên quan tôi answered gần đây.

Đây là những gì tôi đã làm để làm việc này với proxy công ty của tôi sử dụng xác thực NTLM. Tôi tải NuGet.exe từ một liên kết trên this page và sau đó chạy các lệnh sau (mà tôi tìm thấy trong các ý kiến ​​để this discussion trên CodePlex):

nuget.exe config -set http_proxy=http://my.proxy.address:port 
nuget.exe config -set http_proxy.user=mydomain\myUserName 
nuget.exe config -set http_proxy.password=mySuperSecretPassword 

này đặt sau đây trong NuGet.config tôi tọa lạc tại %appdata%\NuGet (mà bản đồ để C: \ Users \ myusername \ AppData \ Roaming trên máy tính Windows 7 của tôi):

<configuration> 
    <!-- stuff --> 
    <config> 
     <add key="http_proxy" value="http://my.proxy.address:port" /> 
     <add key="http_proxy.user" value="mydomain\myUserName" /> 
     <add key="http_proxy.password" value="base64encodedHopefullyEncryptedPassword" /> 
    </config> 
    <!-- stuff --> 
</configuration> 

Ngẫu nhiên, điều này cũng cố định vấn đề của tôi với NuGet chỉ làm việc lần đầu tiên tôi nhấn pa nguồn ckage trong Visual Studio.

Lưu ý rằng một số người đã cố gắng tiếp cận này đã thông báo through the comments on my other answer rằng họ đã có thể bỏ qua thiết lập các http_proxy.password chính từ dòng lệnh, hoặc xóa nó sau-the-thực tế từ các tập tin cấu hình, và là vẫn có thể có chức năng NuGet trên proxy.

Nếu bạn tìm thấy, tuy nhiên, bạn phải chỉ định mật khẩu của bạn trong file config NuGet, hãy nhớ rằng bạn phải cập nhật mật khẩu được lưu trữ trong cấu hình NuGet từ dòng lệnh khi bạn thay đổi mạng của bạn đăng nhập, nếu thông tin đăng nhập proxy của bạn cũng là thông tin đăng nhập mạng của bạn.

+1

Snif ... không hoạt động cho 407. Không phải ở đây, trong mọi trường hợp. – Benjol

+0

@Benjol Để nhận được khoảng 407 lỗi đằng sau proxy của chúng tôi tại văn phòng của tôi, điều này đã làm các trick. Tôi xin lỗi nó đã không làm việc cho bạn. Có lẽ bạn có thể thử chơi với các thiết lập http_proxy khác nhau từ dòng lệnh NuGet và xem bạn có may mắn không. – arcain

+0

Tôi nên thêm rằng điều này đặc biệt cho trường hợp nuget 'tự động tải xuống' tệp nuget.exe vào thư mục .nuget. Khi hành động là 'người dùng khởi xướng', proxy dường như biết rằng đó là 'tôi', vì vậy nó hoạt động. Kể từ đó [tôi đã bỏ rơi] (http://stackoverflow.com/a/20660920) thư mục .nuget anyway. – Benjol

0

Tôi gặp sự cố khi truy cập trang web Nuget thông qua Bảng điều khiển Nuget. "Đã nhận EOF không mong muốn hoặc 0 byte từ luồng truyền tải". Nó đã kết thúc là một vấn đề proxy, sự khác biệt là proxy công việc của tôi là 'vô hình' và không có tùy chọn cấu hình. Tôi đã giải quyết được vấn đề của mình bằng các bước sau.

  1. mở Visual Studio as Administrator
  2. Mở Visual Studio trình duyệt nội bộ (Xem | thiết bị Windows khác | Web Browser)
  3. Tới trang web ngân hàng của bạn - hoặc trang web khác có sử dụng SSL
    Có thể cần phải thực đăng nhập vào trang web, tôi đã không.
  4. Sau đó chạy lệnh Install-package trong Nuget Console.
  5. Lệnh hoạt động mà không có lỗi.

này có thể giúp với các vấn đề sau:

Tôi hy vọng điều này sẽ giúp.

2

Nếu bạn không biết các thiết lập proxy và NuGet là yêu cầu cho một người sử dụng proxy và mật khẩu, bạn có thể thử thêm vào devenv.exe.config tập tin trong thư mục cài đặt trực quan Studio của bạn, giữa <system.net> tags:

<defaultProxy useDefaultCredentials="true" enabled="true"> 
    <proxy usesystemdefault="True"/> 
</defaultProxy> 

nó sẽ giống như thế này, tùy thuộc vào VisualStudio của bạn:

<system.net> 
    <defaultProxy useDefaultCredentials="true" enabled="true"> 
     <proxy usesystemdefault="True"/> 
    </defaultProxy> 
    <settings> 
     <ipv6 enabled="true" /> 
    </settings> 
    </system.net> 

nó làm việc cho tôi mà không hề đưa ra các địa chỉ proxy :) Thực sự điều này nên là hành vi mặc định, tôi đã mất rất nhiều ngày cố gắng để khắc phục điều này ...

Các vấn đề liên quan