PRB: Fehlermeldung "Zeitüberschreitung der Anforderung" tritt auf, wenn Sie in einer ASP.NET Anwendung der DataAdapter-Methode verwenden

Wichtig: Dieser Artikel wurde maschinell übersetzt und wird dann möglicherweise mithilfe des Community Translation Framework (CTF) von Mitgliedern unserer Microsoft Community nachbearbeitet. Weitere Informationen zu CTF finden Sie unter http://support.microsoft.com/gp/machine-translation-corrections/de.

Den englischen Originalartikel können Sie über folgenden Link abrufen: 825739
Problembeschreibung
Wenn Sie die DataAdapter.Fill -Methode verwenden, oder führen Sie eine Abfrage in einer ASP.NET Web-Anwendung, die zum Verarbeiten mehr als 90 Sekunden dauert, erhalten Sie die folgende Fehlermeldung angezeigt:
HttpException (0 x 80004005): Zeitüberschreitung der Anforderung.
Hinweis Dieser Fehler tritt nur beim Ausführen der Webanwendung im Release-Modus und den Wert des Attributs Debuggen in der Web.Config-Datei auf falsefestgelegt ist.
Ursache
Standardmäßig ist der Wert des Attributs "executionTimeout" in der Datei Machine.config auf 90 Sekunden festgelegt. Dieser Fehler tritt auf, wenn die Bearbeitungszeit 90 Sekunden überschreitet.
Abhilfe
Um dieses Problem zu umgehen, erhöhen Sie den Timeoutwert, der für das Attribut "executionTimeout" in der Konfigurationsdatei festgelegt ist.

Das Attribut "executionTimeout" unter HttpRequest in der Datei Machine.config vorhanden ist. Sie können diese Einstellungen in der Datei Web.Config oder in der Datei Machine.config ändern. Der Standardwert für das Zeitlimit ist 90 Sekunden. Das Attribut "executionTimeout" gibt die maximale Anzahl von Sekunden ein, die eine Anforderung vor dem Herunterfahren von der ASP.NET Web-Anwendung ausgeführt werden darf.

Methode 1: Legen Sie den Wert des Attributs "executionTimeout" in der Datei Web.config

  1. Öffnen Sie in Editor die Datei Web.config.
  2. Fügen Sie das HttpRuntime -Element im system.web -Abschnitt wie folgt:
    <configuration>      <system.web>   <httpRuntime executionTimeout="90" maxRequestLength="4096" useFullyQualifiedRedirectUrl="false" minFreeThreads="8" minLocalRequestFreeThreads="4" appRequestQueueLimit="100" /> </system.web></configuration> 
  3. Ändern Sie den Wert des Attributs "executionTimeout" Timeoutfehler zu vermeiden.
  4. Speichern Sie die Datei "Web.config".

Methode 2: Festlegen Sie den ExecutionTimeout-Attributwert in der Datei Machine.config

  1. Öffnen Sie in Editor die Datei "Machine.config". TheMachine.config-Datei befindet sich im the%SystemRoot%\Microsoft.NET\Framework\%VersionNumber%\CONFIG\directory.
  2. Suchen Sie in der Datei Machine.config HttpRuntime -Element. Die Datei "Web.config" befindet sich in das Verzeichnis der Webanwendung
    <httpRuntime executionTimeout="90" maxRequestLength="4096" useFullyQualifiedRedirectUrl="false" minFreeThreads="8" minLocalRequestFreeThreads="4" appRequestQueueLimit="100" />
  3. Ändern Sie den Wert des Attributs "executionTimeout" Timeoutfehler zu vermeiden.
  4. Speichern Sie die Datei "Machine.config".
Status
Dieses Verhalten ist entwurfsbedingt.
Weitere Informationen

Schritte zum Reproduzieren des Verhaltens

  1. Starten Sie Microsoft Visual Studio .NET Version 2002.
  2. Klicken Sie im Menü Datei auf neu und klicken Sie dann auf Projekt.
  3. Klicken Sie unter Projekttypenauf Visual Basic-Projekte , und klicken Sie anschließend unter Vorlagenauf ASP.NET WebApplication . Default,WebForm1.aspx wird erstellt.
  4. In der Entwurfsansicht mit der rechten Maustaste WebForm1, und klicken Sie dann auf Code anzeigen.
  5. Datenbankmodul-Verbindung und der DataAdapter -Methode, um das Dataset füllen, ersetzen Sie den vorhandenen Code durch den folgenden Code hinzufügen:
    Imports System.Data.SqlClientPublic Class WebForm1   Inherits System.Web.UI.Page#Region " Web Form Designer Generated Code "   'The Web Form Designer requires this call.   <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()   End Sub   Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init      'CODEGEN: The Web Form Designer requires this method call       'Do not modify it using the code editor.      InitializeComponent()   End Sub#End Region   Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load      Try         Dim sConnectionString As String         sConnectionString = "server=servername;uid=sa;pwd=password;database=testdatabase;"         Dim objConn As SqlConnection         objConn = New SqlConnection(sConnectionString)         objConn.Open()         Dim daAuthors As SqlDataAdapter         'Increase the no.of records from existing value, if execution time is less than 90 sec.         daAuthors = New SqlDataAdapter("Select top 60000 * From timelog (nolock)", objConn)         Dim myDs As DataSet         myDs = New DataSet("testTimelog")         Dim dt As DateTime         dt = New DateTime()         dt = dt.Now         Response.Write("StartTime of DataAdapter fill - " + dt)         daAuthors.Fill(myDs, "testTimelog")         dt = New DateTime()         dt = dt.Now         Response.Write("<br>EndTime of DataAdapter fill - " + dt)         Response.Write("<br>No of Rows = " + myDs.Tables(0).Rows.Count.ToString())      Catch ex As Exception         Response.Write(ex.ToString())      End Try   End SubEnd Class
  6. Öffnen Sie in Editor die Datei Web.config, und setzen Sie die um Wettbewebersvorteile das Attribut Debug auf false Asfollows:
    <configuration>      <system.web>    <compilation defaultLanguage="vb" debug="false" /> </system.web></configuration>    
  7. Legen Sie die Anwendung im Releasemodus erstellen. Gehen Sie hierzu folgendermaßen vor:
    1. Klicken Sie im Projektmappen-Explorer das Projekt aus.
    2. Klicken Sie auf Eigenschaften, und klicken Sie dann auf Konfigurations-Manager.
    3. Klicken Sie unter Konfiguration der aktuellen Projektmappeauf Release ein, und klicken Sie dann auf Schließen.
    4. Klicken Sie auf OK.
  8. Klicken Sie im Menü Debuggen aufStarten , zum Erstellen und Ausführen des Projekts. Sie können Fehlerliste angezeigt werden, die im Abschnitt "Problembeschreibung" beschrieben.
Hinweis Der Standardwert für das Timeout in der Datei Machine.config 90 Sekunden ist festgelegt. Wenn die Bearbeitungszeit weniger als 90 Sekunden ist, erhöhen Sie die Verarbeitungszeit durch Erhöhen der Anzahl der Datensätze abgerufen werden.
Informationsquellen
Weitere Informationen finden Sie auf den folgenden Websites von Microsoft Developer Network (MSDN):
Auffüllen eines Datasets mit einem DataAdapter-Objekt
http://msdn2.Microsoft.com/en-us/library/bh8kx08z (VS

Warnung: Dieser Artikel wurde automatisch übersetzt.

خصائص

رقم الموضوع: 825739 - آخر مراجعة: 07/03/2015 18:58:00 - المراجعة: 2.0

Microsoft ASP.NET 1.0, Microsoft ASP.NET 1.1

  • kbweb kbsqlclient kbdataadapter kbhttpruntime kbconfig kbthread kbprb kbmt KB825739 KbMtde
تعليقات