2011-01-27 3 views
1

J'utilise un HttpModule dans un site Web IIS et lance 14 000 requêtes POST en 8 sec. qui sont insérés (enregistrés) dans une base de données SQL Server (table sans index).Réactivité/performance Site Web IIS

Cependant seulement 1.200 demandes sont enregistrées, Apparently tous les autres sont en quelque sorte manqués et Je ne sais pas pourquoi.
Lorsque j'ajoute Thread.Sleep (10) après UploadStringAsync (..) Il me manque seulement env. 50-70 messages sur 14 000. Est-ce un problème IIS (5.1 sur cette machine), ou est l'idée de 14 000/8 sec. absurde?

Modifier @ DForck42:
Aucune instruction de sélection n'est utilisée nulle part; l'instruction d'insertion (proc stockée) est:

Entlib.Cmd.Parameters["@datetime"].Value = timestamp; 
Entlib.Cmd.Parameters["@url"].Value = url; 
Entlib.Cmd.Parameters["@body"].Value = postdata; 

using (DbConnection connection = Entlib.Db.CreateConnection()) 
      { 
       Entlib.Cmd.Connection = connection; 
       connection.Open(); 
       Entlib.Cmd.ExecuteNonQuery(); 
       connection.Close(); 
      } 
+0

pouvez-vous publier à quoi ressemble votre instruction d'insertion? aussi, à tout moment est-ce la sélection de la même table/s? – DForck42

Répondre

1

Cela peut constituer un problème de limite de connexion. Il y a une limite sur le nombre de connexions simultanées qu'IIS va gérer (5.1 sur XP Pro ne traitera que 10, par exemple). Lorsque la limite de la file d'attente de connexion est atteinte, IIS commencera à rejeter les demandes. Vérifiez votre journal HTTPERR pour les demandes rejetées.