Tôi đang cố gắng tải xuống một số dữ liệu từ cá thể dịch vụ báo cáo trên máy chủ TFS của chúng tôi.
Cho rằng mã nên chạy trên một máy tính không phải là miền tham gia, tôi figured rằng tôi sẽ thiết lập các thông tin đăng nhập bản thân mình. Không may mắn, hãy nhận lại HTTP 401 trái phép. Ok, vì vậy tôi đã kết nối Fiddler để xem điều gì đang xảy ra.System.Net.WebClient thất bại một cách kỳ lạ
Nhưng đó là khi tôi nhận được Heisenberged - cuộc gọi hiện đã qua mà không gặp trục trặc. Vì vậy, xác thực đi qua với Fiddler kết nối, nhưng thất bại mà không có nó. Webclient có bị hỏng hay tôi thiếu một thứ gì đó sâu sắc ở đây không?
private void ThisWorksWhenDomainJoined()
{
WebClient wc = new WebClient();
wc.Credentials = CredentialCache.DefaultNetworkCredentials;
wc.DownloadString("http://teamfoundationserver/reports/........"); //Works
}
private void ThisDoesntWork()
{
WebClient wc = new WebClient();
wc.Credentials = new NetworkCredential("username", "password", "domain");
wc.DownloadString("http://teamfoundationserver/reports/........"); //blows up wih HTTP 401
}
+1 cho việc sử dụng các nguyên tắc uncertaintly Heisenberg như một động từ, chưa bao giờ nghe một trong những trước! –