วิธีเพิ่มคำขอหมดเวลาใน IIS 7.0 ทำเช่นเดียวกันภายใต้แท็บแอปพลิเคชันในการกำหนดค่า ASP ใน IIS 6.0 ฉันไม่พบส่วนกำหนดค่า asp.net ใน IIS 7.0
วิธีเพิ่มคำขอหมดเวลาใน IIS 7.0 ทำเช่นเดียวกันภายใต้แท็บแอปพลิเคชันในการกำหนดค่า ASP ใน IIS 6.0 ฉันไม่พบส่วนกำหนดค่า asp.net ใน IIS 7.0
คำตอบ:
เพิ่มสิ่งนี้ลงใน Web Config ของคุณ
<system.web>
<httpRuntime executionTimeout="180" />
</system.web>
https://msdn.microsoft.com/en-us/library/e1f13641(v=vs.85).aspx
แอตทริบิวต์ TimeSpan เพิ่มเติม
ระบุจำนวนวินาทีสูงสุดที่คำขออนุญาตให้ดำเนินการก่อนที่จะถูกปิดโดยอัตโนมัติโดย ASP.NET
การหมดเวลานี้ใช้เฉพาะเมื่อแอตทริบิวต์ debug ในองค์ประกอบการรวบรวมเป็น False เพื่อช่วยป้องกันการปิดแอปพลิเคชันในขณะที่คุณกำลังดีบั๊กอย่าตั้งค่าการหมดเวลาเป็นค่าขนาดใหญ่
ค่าเริ่มต้นคือ "00:01:50" (110 วินาที)
ใน IIS Manager คลิกขวาบนเว็บไซต์และไปจัดการเว็บ เว็บไซต์ -> ตั้งค่าขั้นสูง ภายใต้ตัวเลือกขีด จำกัด การเชื่อมต่อคุณควรเห็นการหมดเวลาเชื่อมต่อ
หากต้องการเพิ่มการหมดเวลาคำขอให้เพิ่มไปที่ web.config
<system.web>
<httpRuntime executionTimeout="180" />
</system.web>
และสำหรับหน้าใดหน้าหนึ่งให้เพิ่มสิ่งนี้
<location path="somefile.aspx">
<system.web>
<httpRuntime executionTimeout="180"/>
</system.web>
</location>
ค่าเริ่มต้นคือ 90 วินาทีสำหรับ. NET 1.x
ค่าเริ่มต้น 110 วินาทีสำหรับ. NET 2.0 และใหม่กว่า
ใน IIS> = 7 เป็น<webLimits>
ส่วนได้เข้ามาแทนที่ConnectionTimeout
, HeaderWaitTimeout
, MaxGlobalBandwidth
และMinFileBytesPerSec
IIS 6 การตั้งค่า metabase
ตัวอย่างการกำหนดค่า:
<configuration>
<system.applicationHost>
<webLimits connectionTimeout="00:01:00"
dynamicIdleThreshold="150"
headerWaitTimeout="00:00:30"
minBytesPerSecond="500"
/>
</system.applicationHost>
</configuration>
สำหรับการอ้างอิง: ข้อมูลเพิ่มเติมเกี่ยวกับการตั้งค่าเหล่านี้ใน IIS สามารถพบได้ที่นี่ นอกจากนี้ฉันไม่สามารถเพิ่มส่วนนี้ใน web.config ผ่าน "ตัวแก้ไขการกำหนดค่า" ของ IIS manager แม้ว่ามันจะปรากฏขึ้นเมื่อฉันเพิ่มและค้นหาการกำหนดค่า
ConnectionTimeout
ไม่ executionTimeout
httpRuntime
ด้านล่างนี้เป็นขั้นตอนในการแก้ไขปัญหาของคุณ
ฉันรู้ว่าคำถามเกี่ยวกับ ASP แต่บางคนอาจพบว่าคำตอบนี้มีประโยชน์
หากคุณมีเซิร์ฟเวอร์ที่อยู่ด้านหลัง IIS 7.5 (เช่น Tomcat) ในกรณีของฉันฉันมีเซิร์ฟเวอร์ฟาร์มที่ตั้งค่าเซิร์ฟเวอร์ Tomcat ในกรณีเช่นนี้คุณสามารถเปลี่ยนการหมดเวลาได้โดยใช้ IIS Manager:
หรือคุณสามารถเปลี่ยนมันในไฟล์ cofig:
ตัวอย่าง:
<webFarm name="${SERVER_NAME}" enabled="true">
<server address="${SERVER_ADDRESS}" enabled="true">
<applicationRequestRouting httpPort="${SERVER_PORT}" />
</server>
<applicationRequestRouting>
<protocol timeout="${TIME}" />
</applicationRequestRouting>
</webFarm>
$ {} เวลาอยู่ในHH: ss: mmรูปแบบ (ดังนั้นหากคุณต้องการที่จะตั้งค่าให้ 90 วินาทีจากนั้นใส่มี 00:01:30)
ในกรณีของ Tomcat (และคอนเทนเนอร์ servlet อื่น ๆ ) คุณต้องจำไว้ว่าให้เปลี่ยนการหมดเวลาใน% TOMCAT_DIR% \ conf \ server.xml (เพียงค้นหาแอตทริบิวต์connectionTimeoutในแท็กตัวเชื่อมต่อและจำไว้ว่ามันถูกระบุเป็นมิลลิวินาที )
ใช้คำสั่ง Power shell ด้านล่างเพื่อเปลี่ยนการหมดเวลาการดำเนินการ (Request Timeout)
โปรดทราบว่าฉันได้ให้สิ่งนี้สำหรับเว็บไซต์เริ่มต้นก่อนที่จะใช้สิ่งเหล่านี้โปรดเปลี่ยนเว็บไซต์แล้วลองใช้สิ่งนี้
Set-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST/Default Web Site' -filter "system.web/httpRuntime" -name "executionTimeout" -value "00:01:40"
หรือคุณสามารถใช้รหัส C # ด้านล่างเพื่อทำสิ่งเดียวกัน
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();
}
}
}
หรือคุณสามารถใช้ JavaScript เพื่อทำสิ่งนี้
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();
หรือคุณสามารถใช้คำสั่ง AppCmd
appcmd.exe set config "Default Web Site" -section:system.web/httpRuntime /executionTimeout:"00:01:40"