2013-04-26 20 views
7

Mam problem z uruchamianiem raportów w usługach raportowania Sql Server 2008 (SSRS) 2008 R2.Raport raportu SSRS Pusty

Po skonfigurowaniu witryny, utworzeniu kilku użytkowników i przesłaniu kilku raportów, wybieram raport do uruchomienia, wprowadzam moje parametry i czekam na wyrenderowanie raportu ... ale nic się nie dzieje. Widzę animację "Ładowanie" przez krótki czas (zmienia się od jednej do dziesięciu sekund niezależnie od raportu), ale wkrótce znika, pozostawiając nic poza parametrami u góry strony. Żadna treść raportu nie jest renderowana.

Występuje przy każdym raporcie, który wdrażam do instancji SSRS, niezależnie od wielkości, liczby parametrów itp. Większość raportów ma około ośmiu parametrów podobnego typu, a ich układy mają stosunkowo tabelaryczny format: jest kilka "sekcji", z których każda zawiera tabelę, która może zawierać grupy i/lub powtarzające się wiersze. Średnio każda tabela zawiera około sześciu pól. Kwerendy obsługujące zestawy danych raportów nie są strasznie ciężkie: w większości przypadków mogę je uruchomić pod SQL w czasie poniżej pół minuty.

Przeanalizowałem i wdrożyłem rozwiązania w następujących pytaniach, ale żadna z nich nie rozwiązała problemu.

(Podobne do Safari/Chrome) SSRS 2008 R2 - SSRS 2012 - ReportViewer: Reports are blank in Safari and Chrome

(związane z prowadzeniem przeglądarkę jako administrator) SSRS 2008 - Reporting Services Webpage is Blank except for headers

inne opcje, które mam uwzględnić obejmują prowadzenie raportów z komputera bezpośrednio, a nie poprzez zdalne Pulpit i uruchamianie raportów z innych komputerów w sieci innych niż serwer, który je hostuje. Żadna z tych opcji nie gwarantuje stałego sukcesu.

Ustaliłem jednak, że ten problem jest bezpośrednio związany z liczbą parametrów przekazanych do raportu. Na przykład większość moich raportów ma ponad sześć lub siedem parametrów wielokrotnego wyboru; każdy z nich jest zapełniany w środowisku wykonawczym z bazy danych. Jeśli użytkownik wykona "Wybierz wszystko" lub w inny sposób wybierze dużą liczbę opcji w wyborze parametru, pojawi się powyższy problem. Jeśli jednak użytkownicy mają określone parametry i wybierają tylko kilka, wówczas raport jest renderowany poprawnie.

Kolejnym komplikowaniem tej sytuacji jest fakt, że cierpi na zespół "pracuj z maszyną". Występuje w niektórych środowiskach, ale nie w innych.

Jak wspomniano, jestem w stanie uruchomić raporty poprzez ograniczenie liczby wybranych wartości parametrów; działa to w każdym środowisku. Ciekawi mnie jednak, dlaczego tak się dzieje (być może wewnętrzny limit SSRS) i co mogę zrobić, aby konsekwentnie go unikać w przyszłości.

+0

należy dodać kilka szczegółów takich ile czasu zajmuje uruchomienie i ile pól danych ciągnie? – StevenWhite

+0

Spróbuj użyć czegoś w stylu Skrzypka, aby sprawdzić natężenie ruchu i zobaczyć, co się dzieje. Pomocne może być także sprawdzenie loga iis/server. – Jeroen

+0

@StevenW - zaktualizowano bardziej szczegółowe informacje o rozmiarze raportu i czasie wykonywania, dzięki za komentarz! – jtlovetteiii

Odpowiedz

0

Brak wewnętrznych ograniczeń dla parametrów!

Pierwsza sugestia: Czy łatwo analizować kod z etykietami wyświetlających jeśli tabela zwraca „ma wartość”


I rozwiązać ten sam problem ze skorygowanym składni zapytań do parametrów w zapytaniu SQL :

... 
WHERE t.FieldName = ISNULL (@parameter, t.FieldName) 
AND t.FieldName2 = ISNULL (@parameter2, t.FieldName2) 
... 
0

Wpadłem na ten sam problem z rozwijanym parametrem wielokrotnego wyboru z długą listą możliwych wartości (> 100). Sprawdź swoją sytuację i sprawdź, który parametr dzieli raport.

1

Miałem ten sam problem i postępując zgodnie z sugestią Alex Zakharov znalazłem parametr, który miał prawie 700 wierszy z nimi wszystkie wybrane domyślnie. Usunięcie zaznaczenia kilku wierszy natychmiast rozwiązało problem, ale było to niezadowalające w przypadku wydania produkcyjnego.

Szukasz plików dziennika sugerowanych przez LRB (\Program Files\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\LogFiles\) znalazłem się następujący komunikat o błędzie:

ERROR: HTTP status code --> 500 
-------Details-------- 
System.Web.HttpException: The URL-encoded form data is not valid. ---> 
System.InvalidOperationException: Operation is not valid due to the current state of the object. 
at System.Web.HttpValueCollection.ThrowIfMaxHttpCollectionKeysExceeded() 

Rozwiązanie

To doprowadziło mnie do this answer znaleźć i zaktualizować web.configs, dodaj poniższe linie kodu, a następnie uruchom ponownie usługę.

<appSettings> 
    <!-- default is 1000 --> 
    <add key="aspnet:MaxHttpCollectionKeys" value="2000" /> 
</appSettings> 

musiałem aktualizować w 2 miejscach, ponieważ SSRS ma oddzielne strony dla menedżera raportów i serwer raportów: \Program Files\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\ReportServer\web.config

\Program Files\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\ReportManager\web.config

0

PROPOZYCJI

prostu czuję się jak dzielenie moje rozwiązanie również na to pytanie. Po tak wielu zmaganiach i tak wielu próbach mój problem był bardziej na pierwszym planie, był jeden kod, którego mi brakowało, który zwracał puste strony, ale serwer działał dobrze.

Korzystanie kątowa wrócić HttpResponseMessage z API internetowej, początkowo jest to, jak mój telefon był:

$http.get(url + 'Report/getUsersReport?CustomerId=' + searchCriteria.customerId + '&fromDate=' + searchCriteria.fromDate + '&toDate=' + searchCriteria.toDate).then(getContractsForBackOfficeReportComplete, function (err, status) {defered.reject(err);}); 

i po dodać poniższy wiersz kodu { responseType: 'arraybuffer' }):

$http.get(url + 'Report/getUsersReport?CustomerId=' + searchCriteria.customerId + '&fromDate=' + earchCriteria.fromDate + '&toDate=' + searchCriteria.toDate, { responseType: 'arraybuffer' })(getUsersReportBackOffice, function (err, status) { 
defered.reject(err);}); 
+0

Jakie jest twoje pytanie? Co masz na myśli mówiąc "to pytanie"? – Gustave

Powiązane problemy