Ich versuche, einige Daten von der Reporting Services-Instanz auf unserem TFS-Server herunterladen.
Da der Code auf einem Computer ausgeführt werden sollte, der nicht mit einer Domäne verbunden ist, dachte ich, dass ich die Anmeldeinformationen selbst festlegen würde. Kein Glück, habe eine HTTP 401 Unauthorized zurück. Ok, also habe ich Fiddler angeschlossen um zu sehen was passiert ist.System.Net.WebClient schlägt seltsam
Aber das war, als ich Heisenberged bekam - der Anruf ging jetzt ohne Probleme durch. Die Authentifizierung läuft also mit Fiddler verbunden, scheitert aber ohne sie. Ist der Webclient kaputt oder fehlt mir hier etwas Tiefgründiges?
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 für die Verwendung des Heisen uncertaintly Prinzip als Verb, nie vor, dass man gehört haben! –