2012-09-09 2 views
2

Je porte une application web sur aws. il y a une page aspx qui rassemble des informations d'environ 15 ou 20 tables de données de tables différentes provenant de 3 bases de données différentes. il fonctionne bien sur l'hébergement partagé godaddy et aussi sur mes serveurs de développement mais quand je le mets sur une micro instance ec2 sur aws (pas sûr si cela a quelque chose à voir avec le problème en essayant de donner autant d'informations que possible) je suis obtenir des erreurs aléatoires. Je travaille parfois, mais bien souvent je reçois l'erreur suivantesqlserver express sur aws microinstance en lançant une erreur d'opération invalide

connexion interne erreur fatale à

System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, 
SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject 
stateObj) 
at System.Data.SqlClient.SqlDataReader.ConsumeMetaData() 
at System.Data.SqlClient.SqlDataReader.get_MetaData() 
at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) 
at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async) 
at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result) 
at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method) 
at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method) at System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior) 
at System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior) 
at System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) 
at System.Data.Common.DbDataAdapter.Fill(DataTable[] dataTables, Int32 startRecord, Int32 maxRecords, IDbCommand command, CommandBehavior behavior) 
at System.Data.Common.DbDataAdapter.Fill(DataTable dataTable) 
at UtilitiesLib.csharp.CSharpSqlServer.executeQuery(String sqlstring) in X:\code\UtilitiesLibCSharp\CSharpSqlServer.cs:line 87 at UtilitiesLib.data.Database.executeQuery(DataClass obj, String sqlstring) 
in X:\code\UtilitiesLibSL\data\Database.cs:line 67 
at UtilitiesLib.data.DataClass.loadSQLObject(Database db, DataClass obj, Int32[] cols, String[] signs, String[] vals, String[] ops) in X:\code\UtilitiesLibSL\data\DataClass.cs:line 253 
at UtilitiesLib.data.reading.TestBlockItemMathProblem..ctor(Database db, Int32 blockid, Int32 teacherid) in X:\code\UtilitiesLibSL\data\reading\TestBlockItemMathProblem.cs:line 30 
at UtilitiesLib.transport.reading.readingTCPCommHandlerClient.getTestBlockItem(Int32 type, Database db, Int32 blockid, Int32 teacherid) in X:\code\UtilitiesLibSL\transport\reading\readingTCPCommHandlerClient.cs:line 325 
at reading.test.Page_Load(Object sender, EventArgs e) in X:\code\reading\test.aspx.cs:line 157 

parfois je reçois une autre erreur qui dit quelque chose à l'effet que la connexion est déjà fermée.

c'est super bizarre parce que je n'ai aucun problème avec le site sur l'hébergement partagé ou sur mon serveur de dev. la machine aws fonctionne sous Windows Server 2008 et iis 7.5 et sql server express 2008 r2. Il y a d'autres pages dans le site qui utilisent très bien les tables de données et n'ont jamais cette erreur mais elles utilisent moins de tables de données. Quelqu'un at-il une idée de ce qui pourrait causer cela?

Répondre

0

Je pense que vous atteignez la limite de RAM de 613 Mo de la micro-instance. Ce n'est probablement pas suffisant pour Windows Server, IIS et SQL Server ensemble. Quelques choses que vous pourriez aussi essayer: désactiver le regroupement de connexions dans la chaîne de connexion; De plus, assurez-vous de disposer immédiatement de votre connexion dès que la commande est terminée (utilisez les blocs using).

Questions connexes