PRB: "Permintaan habis" kesalahan terjadi ketika Anda menggunakan metode DataAdapter di ASP.NET aplikasi

Terjemahan Artikel Terjemahan Artikel
ID Artikel: 825739 - Melihat produk di mana artikel ini berlaku.
Perbesar semua | Perkecil semua

GEJALA

Ketika Anda menggunakan DataAdapter.Fill metode, atau Anda menjalankan query ASP.NET Web aplikasi yang membutuhkan lebih dari 90 detik untuk memproses, Anda akan menerima pesan galat berikut:
HttpException (0x80004005): Request timed out.
Catatan Galat ini terjadi hanya ketika Anda menjalankan aplikasi Web dalam rilis modus, dan nilai Debug atribut dalam Web.Config file diatur ke palsu.

PENYEBAB

Secara default, nilai executionTimeout atribut diatur ke 90 detik di Machine.config elemen dari file. Galat ini terjadi ketika Waktu pemrosesan melebihi 90 detik.

TEKNIK PEMECAHAN MASALAH

Untuk mengatasi masalah ini, meningkatkan nilai time-out yang diatur untuk executionTimeout atribut di file konfigurasi.

The executionTimeout atribut yang ada di bawah httpRequest di Machine.config elemen dari file. Anda dapat mengubah pengaturan ini di Web.Config file atau di Machine.config elemen dari file. Nilai default untuk waktu-habis adalah 90 detik. The executionTimeout atribut menunjukkan jumlah maksimum detik permintaan diizinkan untuk menjalankan sebelum ditutup oleh ASP.Aplikasi NET Web.

Metode 1: Menetapkan nilai atribut ExecutionTimeout dalam Web.config File

  1. Buka Web.config file dalam Notepad.
  2. Tambahkan httpRuntime unsur dalam System.web bagian sebagai berikut:
    <configuration>    
      <system.web>
       <httpRuntime executionTimeout="90" maxRequestLength="4096" useFullyQualifiedRedirectUrl="false" 
    minFreeThreads="8" minLocalRequestFreeThreads="4" appRequestQueueLimit="100" />
     </system.web>
    </configuration> 
    
  3. Mengubah nilai executionTimeout atribut untuk menghindari kesalahan waktu habis.
  4. Simpan Web.config file.

Metode 2: Gunakan nilai atribut ExecutionTimeout di Machine.config elemen dari File

  1. Buka Machine.config elemen dari file di Notepad. The Machine.config elemen dari file terletak di %SystemRoot%\Microsoft.NET\Framework\%VersionNumber%\CONFIG\ direktori.
  2. Dalam Machine.config elemen dari file, Cari httpRuntime elemen. Web.config file terletak di aplikasi Web direktori
    <httpRuntime executionTimeout="90" maxRequestLength="4096" useFullyQualifiedRedirectUrl="false" 
    minFreeThreads="8" minLocalRequestFreeThreads="4" appRequestQueueLimit="100" />
  3. Mengubah nilai executionTimeout atribut untuk menghindari kesalahan waktu habis.
  4. Simpan Machine.config elemen dari file.

STATUS

Ini adalah aktivitas.

INFORMASI LEBIH LANJUT

Langkah-Langkah untuk Mereproduksi Perilaku

  1. Mulai Microsoft Visual Studio.NET versi 2002.
  2. Pada Berkas menu, titik Baru, lalu klik Project.
  3. Klik Proyek-proyek Visual Basic di bawah Jenis proyek, lalu klik ASP.NET Web Aplikasi di bawah Pola acu. Secara default, WebForm1.aspx dibuat.
  4. Dalam Design view, klik kanan WebForm1, kemudian klik Lihat kode.
  5. Untuk menambahkan koneksi database dan DataAdapter metode untuk mengisi dataset, mengganti kode yang ada dengan kode berikut:
    Imports System.Data.SqlClient
    Public 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 Sub
    
    End Class
    
  6. Buka Web.config file dalam Notepad, dan kemudian menetapkan nilai untuk Debug atribut palsu sebagai berikut:
    <configuration>    
      <system.web>
        <compilation defaultLanguage="vb" debug="false" />
     </system.web>
    </configuration>    
  7. Mengatur aplikasi untuk membangun dalam modus rilis. Untuk melakukannya, ikuti langkah-langkah berikut:
    1. Dalam solusi Explorer, klik kanan proyek Anda.
    2. Klik Properti, lalu klik Configuration Manager.
    3. Klik Peluncuran di bawah Aktif Solusi konfigurasi, lalu klik Tutup.
    4. Klik Oke.
  8. Pada Debug menu, klikMulai untuk membangun dan menjalankan proyek. Anda akan menerima pesan galat yang dijelaskan di bagian "Gejala".
Catatan Nilai default untuk waktu-habis sebagaimana diatur dalam Machine.config elemen dari file adalah 90 detik. Jika proses waktu kurang dari 90 detik, meningkatkan pengolahan waktu dengan meningkatkan jumlah record untuk diambil.

REFERENSI

Untuk informasi lebih lanjut, kunjungi Website Microsoft Developer Network (MSDN) berikut situs:
Mempopulasikan DataSet dari DataAdapter
.aspx http://msdn2.Microsoft.com/en-us/library/bh8kx08z (vs.71)
<httpruntime>Elemen</httpruntime>
.aspx http://msdn2.Microsoft.com/en-us/library/e1f13641 (vs.71)

Properti

ID Artikel: 825739 - Kajian Terakhir: 07 Oktober 2011 - Revisi: 2.0
Berlaku bagi:
  • Microsoft ASP.NET 1.0
  • Microsoft ASP.NET 1.1
Kata kunci: 
kbweb kbsqlclient kbdataadapter kbhttpruntime kbconfig kbthread kbprb kbmt KB825739 KbMtid
Penerjemahan Mesin
PENTING: Artikel ini diterjemahkan menggunakan perangkat lunak mesin penerjemah Microsoft dan bukan oleh seorang penerjemah. Microsoft menawarkan artikel yang diterjemahkan oleh seorang penerjemah maupun artikel yang diterjemahkan menggunakan mesin sehingga Anda akan memiliki akses ke seluruh artikel baru yang diterbitkan di Pangkalan Pengetahuan (Knowledge Base) dalam bahasa yang Anda gunakan. Namun, artikel yang diterjemahkan menggunakan mesin tidak selalu sempurna. Artikel tersebut mungkin memiliki kesalahan kosa kata, sintaksis, atau tata bahasa, hampir sama seperti orang asing yang berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab terhadap akurasi, kesalahan atau kerusakan yang disebabkan karena kesalahan penerjemahan konten atau penggunaannya oleh para pelanggan. Microsoft juga sering memperbarui perangkat lunak mesin penerjemah.
Klik disini untuk melihat versi Inggris dari artikel ini:825739

Berikan Masukan

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com