Mam problem z WebClient
Za pomocą DataDownload ściągam zawartość strony.
Mam ustawione UseDefaultCredentials na true
Ten sam kod w winform działa poprawnie. W ASP.NET gdy kompiluję poprzez Visual Studio 2008 działa poprawnie, natomiast gdy wrzucę stronkę na serwer Win2008R2 i IIS 7.5 to dostaję błąd autoryzacji 401.
Na IIS w Windows Authentication w providers jest włączone NTLM i Negotiate.
Coś mi jeszcze zaświtało.
Czy w projekcie nie muszę dodać dla webclient referencji aby działało to na innym serwerze IIS ?
Jeśli tak to jak się ta referencja nazywa ?
Mam VS 2008 ver 9.0.30729.1 SP i Microsoft .NET Framework 3.5 SP1
A jak wchodzisz na inną stronę swojej aplikacji na tym IIS, to nie masz 401? Może po prostu wchodzisz na zły URL.
A dostęp do tej strony jest w jakiś sposób autoryzowany? bo iis może chodzić na koncie które nie ma wystarczających uprawnień.
Dostałem link pod którym wyświetla się strona www a na niej jest podana jedna wartość. Załóżmy że 0 lub 1
Gdy wklejam ten link w przeglądarkę to strona wyświetla się prawidłowo.
Używając kompilatora VS2008 i kompilując stronę i gdy wyświetla się z localhost to webclient odczytuje prawidłowo 0 lub 1 z podanej strony.
Gdy wrzucę kod na serwer produkcyjny dostaję błąd 401 przy użyciu DownloadingData.
Gdy cały kod wrzucę w Windows Form to też wszystko działa.
Jedynie błąd wyskakuje w momencie odpalenia kodu na serwerze produkcyjnym.
A jak aplikację Windows Forms odpalisz na serwerze produkcyjnym, to też dostajesz 401 czy pobiera dane?
O, na to nie wpadłem aby tak przetestować. Winform nie działa także odpalony na tym serwerze czyli problem leży w serwerze a nie w kodzie.
EDIT!!!
Jednak działa winform a tego serwera
Zrobiłem jeszcze coś takiego.
Na IIS wrzuciłem stronę na której jest link do kliknięcia. Link prowadzi na tą stronę z flagą. Gdy kliknę to strona się wyświetla i pokazuje 0 lub 1.
Jedynie błąd autoryzacji występuje przy użyciu WebClient DownloadingData. Może to po jakimś innym dziwnym porcie się łączy ?
Zapewne jest rzucany jakiś wyjątek, zaloguj go do pliku i będziesz wiedział.
WebException wywala jedynie
The remote serwer returned an error: (401) Unauthorized.
To wejdź w ustawienia IIS, i przestaw pulę aplikacji na której chodzi Twoja strona na swojego użytkownika. (Masz to w Advanced Settings -> Identity).
Nic nie pomogło