Winforms et Webservice timeout

Résolu
calimer22 Messages postés 10 Date d'inscription jeudi 28 décembre 2000 Statut Membre Dernière intervention 8 mars 2007 - 24 août 2006 à 22:45
calimer22 Messages postés 10 Date d'inscription jeudi 28 décembre 2000 Statut Membre Dernière intervention 8 mars 2007 - 6 sept. 2006 à 12:13
Bonsoir,

j'ai une application winforms qui appelle des webservices
mais bien sur mes webservice qui interrogent ma base SQL mettent parfois un peu de temps pour repondre ou plutot c'est SQL Serveur qui met du temps à repondre et là c'est le drame !!!
J'ai des timeout qui apparaissent

j'ai essayer de parametrer IIS pour qu'il attendent plus mais rien a faire
j'ai mis le timeout à 180 pour le temps du webservice dan le code et rien non plus

le code d'erreur qui m'est renvoyé est le suivant :

System.Web.Services.Protocols.SoapException: Le serveur n'a pas pu traiter la demande. ---> System.Data.SqlClient.SqlException: Impossible de trouver la procédure stockée 'dbo.SP_GET_LISTE_ENQUETE_BY_USER'.
à System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
à System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
à System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
à System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
à System.Data.SqlClient.SqlDataReader.ConsumeMetaData()
à System.Data.SqlClient.SqlDataReader.get_MetaData()
à System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
à System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)
à System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result)
à System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
à System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)
à System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior)
à System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior)
à System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
à System.Data.Common.DbDataAdapter.Fill(DataTable[] dataTables, Int32 startRecord, Int32 maxRecords, IDbCommand command, CommandBehavior behavior)
à System.Data.Common.DbDataAdapter.Fill(DataTable dataTable)
à DS_EnqueteTableAdapters.Tbl_ListeEnquetesTableAdapter.Fill(Tbl_ListeEnquetesDataTable dataTable, Nullable`1 USERID

Quelqu'un à une idée !!
Le process devrait durer entre 40 ou 50 secondes et ce timeout arrive à 30 secondes !!!

Merci de votre aidehttp://www.developpez.net/forums/showthread.php?p=1292101#post1292101
A voir également:

6 réponses

calimer22 Messages postés 10 Date d'inscription jeudi 28 décembre 2000 Statut Membre Dernière intervention 8 mars 2007
6 sept. 2006 à 12:13
Salut,

Bon pour palier mon probléme j'ai fait les actions suivants :

Time out de reponse du webservice => augmenter
Webservice => refondu pour ne pas faire une simple utilisation d'un dataset  mais la gestion de la requête dans le code et je renvoie un dataset complet comme ci dessous
    public DataSet ListeEnqueteRechercheAvecStructureNew(Param_ListeEnquete liste)
    {

        string strSQL;
        strSQL = "";

            // Requete SQL
            strSQL = "SP_GET_ListeEnqueteRETOURManager " ;

         // Va chercher les informations sur la connexion
        InitializeComponent();
        //  Ouvre la connexion
        openSqlConnection.Open();

        if (openSqlConnection == null)
        {
            InitializeComponent();
            openSqlConnection.Open();
        }
        // on déclare le dataset
        DataSet ds = new DataSet();

        // crée la commande sql
        SqlCommand cmd = openSqlConnection.CreateCommand();

        // la commande a proprement parlé
        cmd.CommandText = strSQL;
        cmd.CommandType = CommandType.Text;
        // on se géne pas sur le timeout
        cmd.CommandTimeout = 300000;

        // création du DataAdapter
        SqlDataAdapter da = new SqlDataAdapter(cmd);

        // Chargement des infos
        da.Fill(ds);

        // on retourne le Dataset
        return ds;
}

et là je peux faire des requêtes longues y a pas de soucis

@+
3