2010-03-10 42 views

Trả lời

60

Trong Trình quản lý IIS, nhấp chuột phải vào trang web và đi tới Quản lý trang web -> Cài đặt nâng cao. Trong đó, theo Giới hạn kết nối, bạn sẽ thấy Thời gian chờ kết nối.

+3

Điều này cũng giống như thời gian chờ yêu cầu. Tôi đang cố di chuyển dữ liệu từ tài liệu xml và thời gian chờ reuqest. Vì vậy, nếu tôi tăng thời gian chờ kết nối, điều này sẽ được giải quyết. –

+7

Tôi không nghĩ rằng điều này là chính xác, nếu 'HTTP Keep-Alive' được kích hoạt, thì cài đặt thời gian này áp dụng cho nó, có nghĩa là kết nối sẽ tiếp tục hoạt động trong bao lâu, tôi không nghĩ rằng điều này có liên quan đến 'yêu cầu thời gian chờ' chờ đợi để thực hiện một trang) .. – visual

+0

Tôi nghĩ rằng đây là câu trả lời đúng trong các tình huống nhất định, chẳng hạn như tải lên một tệp lớn. Trong khi chờ tải lên, –

125

Thêm phần này vào Web của bạn Config

<system.web> 
    <httpRuntime executionTimeout="180" /> 
</system.web> 

https://msdn.microsoft.com/en-us/library/e1f13641(v=vs.85).aspx

Tùy chọn TimeSpan thuộc tính.

Chỉ định số giây tối đa mà yêu cầu được phép thực thi trước khi được tự động tắt bởi ASP.NET.

Thời gian chờ này chỉ áp dụng nếu thuộc tính gỡ lỗi trong phần biên dịch là sai. Để giúp ngăn chặn việc tắt ứng dụng trong khi bạn đang gỡ lỗi, không đặt thời gian chờ này thành giá trị lớn.

Giá trị mặc định là "00:01:50" (110 giây).

+6

Điều này có thể được đặt từ Giao diện người quản lý IIS 7 không? – Triynko

+3

Điều này làm việc cho IIS6 cũng như – banging

+10

Thời gian chờ được xác định bằng giây, mặc định là 110 giây.Lưu ý: Thời gian chờ này chỉ áp dụng nếu thuộc tính gỡ lỗi trong phần tử được đặt thành false! – Jowen

21

Trong IIS> = 7, một phần <webLimits> đã thay thế ConnectionTimeout, HeaderWaitTimeout, MaxGlobalBandwidth, và MinFileBytesPerSec IIS 6 thiết lập metabase.

Ví dụ Cấu hình:

<configuration> 
    <system.applicationHost> 
     <webLimits connectionTimeout="00:01:00" 
     dynamicIdleThreshold="150" 
     headerWaitTimeout="00:00:30" 
     minBytesPerSecond="500" 
     /> 
    </system.applicationHost> 
</configuration> 

Để tham khảo: thêm thông tin về các thiết lập trong IIS can be found here. Ngoài ra, tôi đã không thể thêm phần này vào web.config thông qua trình quản lý cấu hình của trình quản lý IIS, mặc dù nó đã xuất hiện khi tôi thêm nó và tìm kiếm cấu hình.

+2

Điều này thay thế 'ConnectionTimeout', không thay thế' executionTimeout' của httpRuntime. – user2864740

10

Tôi biết câu hỏi là về ASP nhưng có thể ai đó sẽ tìm thấy câu trả lời này hữu ích.

Nếu bạn có máy chủ phía sau IIS 7.5 (ví dụ: Tomcat). Trong trường hợp của tôi, tôi có một máy chủ trang trại với máy chủ Tomcat được cấu hình. Trong trường hợp như vậy, bạn có thể thay đổi thời gian chờ sử dụng IIS Manager:

  • đi máy chủ trại ->{Server Name} ->Proxy
  • thay đổi giá trị trong Thời hiệu ra hộp nhập
  • nhấp chuột Áp dụng (góc trên bên phải)

hoặc bạn có thể thay đổi nó trong file cofig:

  • mở % WinDir% \ System32 \ Inetsrv \ Config \ applicationHost.cấu hình
  • điều chỉnh máy chủ webFarm cấu hình được tương tự như sau

Ví dụ:

<webFarm name="${SERVER_NAME}" enabled="true"> 
    <server address="${SERVER_ADDRESS}" enabled="true"> 
    <applicationRequestRouting httpPort="${SERVER_PORT}" /> 
    </server> 
    <applicationRequestRouting> 
    <protocol timeout="${TIME}" /> 
    </applicationRequestRouting> 
</webFarm> 

Các $ {LÚC NÀO} là trong HH: mm: ss định dạng (vì vậy nếu bạn muốn đặt nó thành 90 giây rồi đặt ở đó 00:01:30)

Trong trường hợp Tomcat (và có lẽ các thùng chứa servlet khác) bạn phải nhớ thay đổi thời gian chờ trong % TOMCAT_DIR% \ conf \ server.xml (chỉ cần tìm kiếm thuộc tính kết nối connectTimeout trong Thẻ kết nối và nhớ rằng nó được chỉ định trong mili giây)

+2

Xin lưu ý rằng bạn chỉ nên đăng câu trả lời có liên quan trực tiếp đến câu hỏi được yêu cầu. Vì câu hỏi này hoàn toàn là về IIS, một câu trả lời với thông tin về Tomcat thực sự không liên quan. –

+8

Trong trường hợp này tôi nghĩ câu trả lời có liên quan như trường hợp sử dụng được chỉ định ở đây (sử dụng IIS Application Request Routing để định tuyến đến một máy chủ khác) là về IIS. Thiết lập ở đây cũng có thể cấu hình bên trong IIS Manager. FWIW, câu trả lời này đã giúp tôi khắc phục sự cố chỉ thời gian chờ yêu cầu mà tôi nên thay đổi. (Vì có nhiều cài đặt hết thời gian chờ trong Trình quản lý IIS) –

22

để Tăng thời gian yêu cầu ra thêm video này vào web.config

<system.web> 
    <httpRuntime executionTimeout="180" /> 
</system.web> 

và cho một trang cụ thể thêm này

<location path="somefile.aspx"> 
    <system.web> 
     <httpRuntime executionTimeout="180"/> 
    </system.web> 
</location> 

Giá trị mặc định là 90 giây đối với .NET 1.x.

110 giây mặc định cho .NET 2.0 trở lên.

+1

Bạn đã kiếm được +1 với thông tin về vị trí –

3

Sử dụng lệnh điện vỏ dưới đây để thay đổi thời gian chờ thực hiện (Request Timeout)

Xin lưu ý rằng tôi đã đưa ra này cho trang web mặc định, trước khi sử dụng những hãy thay đổi trang web và sau đó thử để sử dụng điều này.

Set-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST/Default Web Site' -filter "system.web/httpRuntime" -name "executionTimeout" -value "00:01:40" 

Hoặc Bạn có thể sử dụng dưới mã C# để làm điều tương tự

using System; 
using System.Text; 
using Microsoft.Web.Administration; 

internal static class Sample { 

    private static void Main() { 

     using(ServerManager serverManager = new ServerManager()) { 
      Configuration config = serverManager.GetWebConfiguration("Default Web Site"); 

      ConfigurationSection httpRuntimeSection = config.GetSection("system.web/httpRuntime"); 
      httpRuntimeSection["executionTimeout"] = TimeSpan.Parse("00:01:40"); 

      serverManager.CommitChanges(); 
     } 
    } 
} 

Hoặc, bạn có thể sử dụng JavaScript để làm điều này.

var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager'); 
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST/Default Web Site"; 

var httpRuntimeSection = adminManager.GetAdminSection("system.web/httpRuntime", "MACHINE/WEBROOT/APPHOST/Default Web Site"); 
httpRuntimeSection.Properties.Item("executionTimeout").Value = "00:01:40"; 

adminManager.CommitChanges(); 

Hoặc, bạn có thể sử dụng APPCMD lệnh.

appcmd.exe set config "Default Web Site" -section:system.web/httpRuntime /executionTimeout:"00:01:40" 
Các vấn đề liên quan