nie jest to możliwe dla PDF zawierają odniesienie do obrazu zewnętrznego (przynajmniej z mojego zrozumienia). Aby obraz pojawił się w pliku PDF, musi być osadzony w dokumencie. Dlatego, aby użyć zewnętrznego obrazu, Twoja aplikacja musi pobrać obraz i zapisać go w dokumencie. Przeglądarka raportów spróbuje zrobić to za Ciebie.
dwie możliwe odpowiedzi:
Pierwsze, w celu aplikacji do Pakietu obraz do formatu PDF, to musi być w stanie pobrać obraz z adresu URL określasz. Jeśli adres URL znajduje się za serwerem proxy (z punktu widzenia serwera aplikacji) i/lub wymaga poświadczeń dostępu, spowoduje to wyzwanie z domyślną konfiguracją przeglądarki raportów.
Jeśli problem dotyczy serwera proxy, zapoznaj się z ustawieniami dostępnymi w pliku web.config, który możesz dodać poniżej. Może być również konieczne podanie poświadczeń sieciowych, aby aplikacja mogła uwierzytelnić się na serwerze proxy. Istnieje wiele sposobów rozwiązania tego problemu, ale jednym z najłatwiejszych jest uruchomienie aplikacji jako konta usługi w domenie, które ma prawa do przechodzenia przez serwer proxy. Możesz to sprawdzić, uruchamiając witrynę tymczasowo (powinna być tymczasowa, ponieważ jest to okropna praktyka bezpieczeństwa).
Używany obraz może wymagać poświadczeń dostępu (spróbuj wyciągnąć obraz w przeglądarce Firefox za pomocą pustych plików cookie i sprawdź, czy poświadczenia były wymagane, aby uzyskać do niego dostęp). Jeśli wymaga uwierzytelniania systemu Windows, to samo rozwiązanie do zabezpieczeń proxy może dotyczyć uwierzytelniania wymaganego na zdalnym obrazie. Jeśli wymaga innej formy uwierzytelniania, lepiej pobrać i osadzić obraz w swoim projekcie.
Możliwe jest również pobranie obrazu za pomocą innych środków w kodzie i przekształcenie go w tablicę bajtów w celu uwzględnienia w raporcie. Istnieje wiele przykładów tego w Internecie, w tym przepełnienie stosu here.
drugie, spojrzeć na następnej stronie:
http://msdn.microsoft.com/en-us/library/ms251715%28VS.80%29.aspx
Używanie obrazów zewnętrznych w raporcie ReportViewer nie jest włączona domyślnie. Aby użyć obrazu zewnętrznego, musisz ustawić właściwość EnableExternalImages w kodzie. W zależności od konfiguracji sieci, możesz również pominąć ustawienia proxy do , aby umożliwić wyświetlanie zewnętrznego obrazu. Możesz dodać następujące ustawienia do pliku Web.config, aby ominąć lokalny serwer proxy . Podczas modyfikacji pliku web.config , należy określić nazwę serwera proxy, który jest używane w sieci:
<system.net>
<defaultProxy>
<proxy usesystemdefault = "false" bypassonlocal = "true" proxyaddress = "http://<proxyservername>:80/" />
<defaultProxy>
</system.net>
Nadzieja jeden lub oba z nich pomaga.
Jerry
Zapomniałem wspomnieć, że jeśli obraz znajduje się w lokalnej aplikacji i korzystasz z uwierzytelniania systemu Windows, może pojawić się typowy problem polegający na tym, że uwierzytelnianie systemu Windows nie powiedzie się lokalnie: http://support.microsoft.com/kb/896861 Powinieneś również śledzić dziennik zdarzeń na swoim serwerze pod kątem jakiegokolwiek błędu lub niepowodzenia uwierzytelnienia, aby pomóc w diagnozie tego problemu. Jerry –
Jaki rodzaj uwierzytelnienia posiadasz na swojej stronie? Czy podniosłeś obraz w IE lub przetestowałeś Firefoksa, tak jak sugerowałem? Czy masz jakieś istotne błędy w swoim dzienniku zdarzeń? –
Myślę, że wspomniałem, że obraz pokazuje się dobrze w przeglądarce. Ponadto nie ma nic w dziennikach zdarzeń podczas generowania raportu. Doceniam Twoje sugestie, ale żaden z nich nie wydaje się rozwiązać problemu. Zgadzam się, że obraz mógłby zostać pobrany i przekonwertowany na tablicę bajtów, ale wolałbym tego uniknąć, ponieważ jest to problem występujący lokalnie, a nie na żywo. –