IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Dotnet Discussion :

Winforms et Webservice timeout


Sujet :

Dotnet

  1. #1
    Futur Membre du Club
    Inscrit en
    July 2002
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : July 2002
    Messages : 8
    Points : 6
    Points
    6
    Par défaut Winforms et Webservice timeout
    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 aide

  2. #2
    Membre expérimenté
    Avatar de Mehdi Feki
    Profil pro
    Inscrit en
    December 2004
    Messages
    1 113
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : December 2004
    Messages : 1 113
    Points : 1 566
    Points
    1 566
    Par défaut
    Bonsoir Calimer.

    Citation Envoyé par calimer22
    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)
    T'es sûr que la procedure stoquée SP_GET_LISTE_ENQUETE_BY_USER existe dans ta base
    Mehdi Feki : Modérateur .Net

  3. #3
    Futur Membre du Club
    Inscrit en
    July 2002
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : July 2002
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    Salut

    oui je suis sur et certain car si le serveur est pas trop chargé et si il me fait l'immense honneur de vouloir répondre j'arrive parfois à des temps de traitements en dessous des 30 secondes

    j'ai essayé de changer le nom de la SP sur le serveur et dans ce cas là le message est beaucoup plus facile d'interprétation car il dit vraiment que la SP n'existe pas

  4. #4
    Membre expérimenté
    Avatar de Mehdi Feki
    Profil pro
    Inscrit en
    December 2004
    Messages
    1 113
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : December 2004
    Messages : 1 113
    Points : 1 566
    Points
    1 566
    Par défaut
    Essaie de configurer le timeout dans SQL Server !!!
    et aussi de modifier la Propriété SqlCommand.CommandTimeout
    Mehdi Feki : Modérateur .Net

  5. #5
    Futur Membre du Club
    Inscrit en
    July 2002
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : July 2002
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    Pour être plus précis j'ai refait tourner en reverifiant toutes les options (timeout / nom / ....)
    et voilà ce que cela a donné

    System.Web.Services.Protocols.SoapException: Le serveur n'a pas pu traiter la demande. ---> System.Data.SqlClient.SqlException: Expiration du délai d'attente. Le délai d'attente s'est écoulé avant la fin de l'opération ou le serveur ne répond pas.
    à 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)
    à NewListeEnqueteTableAdapters.SP_GET_ListeEnqueteARPTableAdapter.Fill(SP_GET_ListeEnqueteARPDataTable dataTable, Nullable`1 ENQ_NUM, Nullable`1 DEE_NUM, String INP_CIVILITE, String INP_NOM, String INP_PRENOM, String ADR_LOCALITE, String ADR_CP, Nullable`1 DEE_PRIORITE, Nullable`1 DEE_URGENCE, String ENQ_DT_AFFECTATION, String ENQ_DT_RETOUR_CALCULE, String ENQ_DT_Planif, Nullable`1 ENQ_EMP_ID, String EEQ_CODE, Nullable`1 PRE_CODE, String CATRDV, Nullable`1 EMP_EQU_ID)

    je crois que mon copier coller de hier soir était foireux sur mon libellé d'erreur pardon

    mais en tout cas mon probléme est toujours là
    merci de votre aide

    SQL serveur est configuré (ou plutot le timeout) à 0 donc illimité

    mes connection sont faites avec les options suivantes
    <addname="TESTConnectionString"connectionString="Data Source=CREDTEST;Initial Catalog=TEST_INDEX;Persist Security Info=True;User ID=toto;Password=connect;Connect Timeout=180"providerName="System.Data.SqlClient" />
    </connectionStrings>

    et je ne peux pas configurer mon command time out car c'est dans un dataset


    des idées ?

  6. #6
    Membre expérimenté
    Avatar de Mehdi Feki
    Profil pro
    Inscrit en
    December 2004
    Messages
    1 113
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : December 2004
    Messages : 1 113
    Points : 1 566
    Points
    1 566
    Par défaut
    Citation Envoyé par calimer22
    et je ne peux pas configurer mon command time out car c'est dans un dataset
    Alors change le timeout de la SelectCommand de ton SqlDataAdapter :

    Remplissage d'un DataSet à partir d'un DataAdapter
    Mehdi Feki : Modérateur .Net

  7. #7
    Futur Membre du Club
    Inscrit en
    July 2002
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : July 2002
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    Salut,

    je viens d'arriver et j'ai tester en changeant mon WebService ce qui me donne dans le WS le code suivant


    // déclaration d'un DataSet
    NewListeEnquete ds = new NewListeEnquete();

    NewListeEnqueteTableAdapters.SP_GET_ListeEnqueteRETOURManagerTableAdapter dt = new NewListeEnqueteTableAdapters.SP_GET_ListeEnqueteRETOURManagerTableAdapter();
    dt.Connection.ConnectionTimeout = 180;

    dt.Fill(ds.SP_GET_ListeEnqueteRETOURManager,
    liste.numEnquete, liste.numDemande, liste.civilite, liste.nom, liste.prenom,
    liste.localite, liste.CPAdresse, liste.priorite, liste.urgence, liste.dtAffectation,
    liste.dtRetourCalc, liste.DtPlanif, liste.employe, liste.CodeEnquete, liste.prestation, liste.CatRDV, liste.Equipe , liste.Result_Id);

    return ds;

    et quand j'essaye la publication pour tester cela me répond

    Erreur 2 La propriété ou l'indexeur 'System.Data.Common.DbConnection.ConnectionTimeout' ne peut pas être assigné -- il est en lecture seule C:\DEV\ARPISTE\ARPISTE\WebSrv_ARPISTE\App_Code\srv_NewListeEnquete.cs 76 13 C:\...\WebSrv_ARPISTE\

    et là à ce moment là je me rappelle que j'avais déjà tester cette solution.

    au lieu d'utiliser la méthode facile MS il va falloir que j'ouvre ma connection que je décrive celle-ci et que je fasse l'execution moi meme c'est bien cela la prochaine etape non ?

Discussions similaires

  1. [VB .NET] Paramétrer timeout sur un WebService
    Par aloisio11 dans le forum Services Web
    Réponses: 2
    Dernier message: 13/07/2010, 10h28
  2. Appel automatique et régulier d'un webservice et WinForm
    Par Amokrane dans le forum Général Dotnet
    Réponses: 3
    Dernier message: 05/05/2008, 20h22
  3. Utilisation du timeout d'un WebService ?
    Par Leti dans le forum Services Web
    Réponses: 2
    Dernier message: 19/12/2007, 16h37
  4. [C#] WebService notifie un winform
    Par nicoo dans le forum Services Web
    Réponses: 5
    Dernier message: 21/12/2006, 10h22
  5. [C#] winform + webservice + deconnecté
    Par appwnet dans le forum Accès aux données
    Réponses: 1
    Dernier message: 25/10/2006, 10h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo