Ich unterstütze eine ASP.Net 3.5-Webanwendung, und bei den Benutzern tritt nach 30 Sekunden ein Timeout-Fehler auf, wenn sie versuchen, einen Bericht auszuführen. Wenn ich mich im Web umsehe, scheint es einfach zu sein, die Zeitüberschreitung im Code zu ändern. Leider bin ich nicht in der Lage, auf den Code zuzugreifen und ihn neu zu kompilieren. Gibt es eine Möglichkeit, die Standardeinstellung für die Webanwendung, den Arbeitsprozess, IIS oder den gesamten Rechner zu konfigurieren?
Hier ist der Stack-Trace bis zu dem Punkt, wo es in System.Data ist, für den Fall, dass ich ein anderes Problem übersehen:
[SqlException (0x80131904): Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.]
System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) +1948826
System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) +4844747
System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) +194
System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) +2392
System.Data.SqlClient.SqlDataReader.ConsumeMetaData() +33
System.Data.SqlClient.SqlDataReader.get_MetaData() +83
System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) +297
System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async) +954
System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result) +162
System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method) +32
System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method) +141
System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior) +12
System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior) +10
System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) +130
System.Data.Common.DbDataAdapter.Fill(DataTable[] dataTables, Int32 startRecord, Int32 maxRecords, IDbCommand command, CommandBehavior behavior) +162
System.Data.Common.DbDataAdapter.Fill(DataTable dataTable) +115
--Edit
Es muss etwas außerhalb des Codes selbst liegen - ich habe die Datenbank heruntergeladen und sie gegen dieselbe Website auf einem Testserver laufen lassen, und sie läuft länger als 30 Sekunden und liefert den Bericht. Ich habe die Dateien machine.config und web.config aus dem .Net-Verzeichnis auf dem Live- und dem Testserver verglichen und sie scheinen identisch zu sein. Ich habe auch die beiden IIS-Setups verglichen und mir die SQL-Server-Konfiguration angesehen, und der einzige Unterschied ist, dass der Live-Server auf einem 64-Bit-W2K3-Cluster läuft, während der Testserver auf 32-Bit läuft.