2009-11-08 3 views
1

Je développe un service de rapport et tout excecuting la requête obtenir:services Reportins Délai d'attente expiré

Une erreur est survenue lors du traitement du rapport. Une exception a été émise par la cible d'une invocation. Le délai d'expiration a expiré. Le délai d'expiration s'est écoulé avant la fin de l'opération ou le serveur ne répond pas.

Je sais que sur le serveur SQL la requête s'exécute pendant une minute ou deux.

Je setted la chaîne de connexion dans le web.config comme ça:

"Source de données = Serva Initial Catalog = myPortal; intégré sécurité = True; délai de connexion = 1000"

Cela n'a pas fonctionné pour moi.

Répondre

3

Vous pouvez spécifier le connection timeout dans la chaîne de connexion, mais qui dit que combien de temps il doit attendre une connexion pour réussir,

Qu'est-ce que vous cherchez est le command timeout. Cela spécifie combien de temps SSRS attendra une requête particulière pour réussir. Si je me souviens bien, vous pouvez changer cela dans chaque rapport dans le paramètre command timeout? Ou peut-être qu'il a été appelé execution timeout?

+0

pouvez-vous envoyer le paramètre exact? –

1

Comment je suis arrivé que cela fonctionne à l'aide BIDS 2008:

  1. Dans le volet "Data Report", cliquez droit sur le Dataset et sélectionnez "Propriétés" Dataset.
  2. Au bas de l'onglet « Requête » dans la fenêtre modale « Propriétés du dataset », définissez la valeur du « délai d'attente (en secondes
0

Voir cette Link.

Après avoir terminé la conception de Dataset.xsd, trouver dans Dataset.Designer.cs le code suivant:

protected global::System.Data.SqlClient.SqlCommand[] CommandCollection { 
     get { 
      if ((this._commandCollection == null)) { 
       this.InitCommandCollection(); 
      } 
      return this._commandCollection; 
     } 
    } 

et changer à:

protected global::System.Data.SqlClient.SqlCommand[] CommandCollection 
    { 
     get 
     { 
      if ((this._commandCollection == null)) 
      { 
       this.InitCommandCollection(); 
       _commandCollection[0].CommandTimeout = 0; 
      } 
      _commandCollection[0].CommandTimeout = 0; 
      return this._commandCollection; 
     } 
    } 

Construisez votre programme et profitez-en.

Questions connexes