Domanda

Finora in questo progetto ho due rapporti in VS2008 / OFFERTE. Il primo contiene 1 Tablix ed è circa 100k. Il secondo contiene 3 tablixes (tablices?) Ed è circa 257K. Posso distribuire correttamente il rapporto più piccolo da VS e posso caricarlo dal Report Manager in IE. Posso vederlo / eseguirlo da Gestione report e posso raggiungere l'URL del server di report (servizio web) dal mio browser bene. Tutto è fatto tramite HTTPS e non c'è niente di sbagliato con i certificati.

Con il rapporto più grande, l'errore che ottengo in VS è "L'operazione è scaduta" dopo circa 100 secondi. L'errore quando ho caricato da IE è "La connessione sottostante chiusa: un errore imprevisto si è verificato un invio". Dopo circa 130 secondi

Nel file RSReportServer.config Ho provato a cambiare di autenticazione / EnableAuthPersistence da true a false e riavviando il servizio, ma ancora ottenere l'errore. Ho la chiave "SecureConnectionLevel" impostato su 2. La modifica di questa a 0 e spegnimento SSL non sta per essere un'opzione. Ho aggiunto una chiave di Registro di sistema denominata "MaxRequestBytes" a HKEY_LOCAL_MACHINE \ System \ CurrentControlSet \ Services \ HTTP \ Parameters e impostarlo a 5.242.880 (5 MB) e riavviato il HTTP e servizi SRS come suggerito in un post sul forum di Jin Chen MSFT.

Non riesco ancora a caricare il report più grande. Questo è su MS SQL 2008 e WS 2003. Di seguito è parte di una voce del file di log da ... \ Reporting Services \ LogFiles quando ho tentato di caricare da IE.

library!WindowsService_0!89c!02/10/2010-07:57:57:: i INFO: Call to CleanBatch() ends
ui!ReportManager_0-1!438!02/10/2010-07:59:33:: e ERROR: The underlying connection was closed: An unexpected error occurred on a send.
ui!ReportManager_0-1!438!02/10/2010-07:59:34:: e ERROR: HTTP status code --> 500
-------Details--------
System.Net.WebException: The underlying connection was closed: An unexpected error occurred on a send. 
---> System.IO.IOException: Unable to write data to the transport connection: An established connection was aborted by the software in your host machine. 
---> System.Net.Sockets.SocketException: An established connection was aborted by the software in your host machine
   at System.Net.Sockets.Socket.MultipleSend(BufferOffsetSize[] buffers, SocketFlags socketFlags)
   at System.Net.Sockets.NetworkStream.MultipleWrite(BufferOffsetSize[] buffers)
   --- End of inner exception stack trace ---
   ...
È stato utile?

Soluzione

Credo di aver capito questo fuori. Il blog di aumentare la massima richiesta di byte ha dichiarato di aggiungere una chiave di Registro di sistema denominata "MaxRequestBytes" a HKEY_LOCAL_MACHINE \ System \ CurrentControlSet \ Services \ HTTP \ Parameters, che ho fatto, e quindi riavviato i servizi appropriati. Da quando ho ancora avuto il problema che ho continuato a cercare una soluzione, e come si scopre, "MaxRequestBytes" non dovrei essere aggiunto come una chiave di registro, ma come un valore DWORD. Vedere Impostazioni Http.sys Registro di sistema per IIS per ulteriori informazioni. Per MaxRequestLength il valore predefinito è 16384 e il massimo è 16777216 (16 MB). Io ho il mio impostato a 1048576 (1 MB).

Un'altra cosa che ho guardato è stato l'attributo maxRequestLength in Elemento

L'ultima cosa da verificare è che HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ Tcpip \ Parameters \ EnableTCPChimney era già impostato a 0.

Il server è stato riavviato per un altro motivo dopo aver effettuato la modifica del Registro MaxRequestLength e sono in grado di caricare tutti i rapporti oggi, tra cui il più grande, tutto tramite HTTPS.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top