IIS'de istek zaman aşımı nasıl artırılır?


150

IIS 7.0'da istek zaman aşımı nasıl artırılır? Aynı şey, IIS 6.0'daki ASP yapılandırma ayarlarındaki uygulama sekmesi altında yapılır. IIS 7.0'da asp.net yapılandırma bölümünü bulamıyorum

Yanıtlar:


182

Bunu Web Config'inize ekleyin

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

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

İsteğe bağlı TimeSpan özelliği.

ASP.NET tarafından otomatik olarak kapatılmadan önce bir isteğin yürütülmesine izin verilen maksimum saniye sayısını belirtir.

Bu zaman aşımı yalnızca derleme öğesindeki hata ayıklama özniteliği Yanlış ise geçerlidir. Hata ayıklama sırasında uygulamanın kapatılmasını önlemeye yardımcı olması için bu zaman aşımını büyük bir değere ayarlamayın.

Varsayılan "00:01:50" dir (110 saniye).


8
Bu, IIS 7 Yöneticisi GUI'sinden ayarlanabilir mi?
Triynko

13
Zaman aşımı süresi saniye cinsinden belirtilir, varsayılan değer 110 saniyedir. Not: Bu zaman aşımı yalnızca <compilation> öğesindeki hata ayıklama özniteliği false olarak ayarlandığında geçerlidir!
Jowen

1
@Jowen: Sen sallan! Daha önce hata ayıklamasını yanlış günler önce değiştirmiştim ve aldığım tüm zaman aşımı hatalarıyla ilişkilendirmedim. Şimdi biliyorum.
Doug S

ExecutionTimeout maksimum değeri de TimeSpan (: 48: 10.675.199,02 05.4775807) maksimum değerdir Not olduğunu ... daha sonra ihtiyaç
Antoine Pelletier

72

IIS Yöneticisi'nde siteyi sağ tıklatın ve Web Sitesini Yönet -> Gelişmiş Ayarlar'a gidin . Bağlantı Sınırları seçeneği altında , Bağlantı Zaman Aşımı'nı görmelisiniz .


6
Bu istek zaman aşımı ile aynı mı? Bir xml belgesi ve reuqest zaman aşımı veri taşımak için çalışıyorum. Bu yüzden bağlantı zaman aşımını artırırsam bu sorun çözülür.
Dotnet Rocks

12
'HTTP Keep-Alive' etkinse bunun doğru olduğunu düşünmüyorum, o zaman bu zamanlama ayarı bunun için geçerlidir, yani bağlantı ne kadar süre hayatta kalacaktır, bunun 'istek zaman aşımı' ile ilgili olduğunu düşünmüyorum (ne kadar bekler bir sayfanın yürütülmesi için) ..
görsel

1
Bence bu büyük bir dosya yüklemek gibi bazı durumlarda doğru cevaptır. Yüklemeyi beklerken
David Hammond

45

İstek zaman aşımını artırmak için bunu web.config dosyasına ekleyin

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

ve belirli bir sayfa için bunu ekleyin

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

.NET 1.x için varsayılan değer 90 saniyedir.

.NET 2.0 ve sonraki sürümler için varsayılan 110 saniye.


3
+1 hakkında konum bilgisiyle +1 kazandınız
Gonza Oviedo

Çok kullanışlı. Teşekkürler!
jim1427

29

IIS> = 7 olarak, <webLimits>bölüm yerini aldı ConnectionTimeout, HeaderWaitTimeout, MaxGlobalBandwidthve MinFileBytesPerSec6 metatabanı ayarlarını IIS.

Örnek Yapılandırma:

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

Başvuru için: IIS'deki bu ayarlarla ilgili daha fazla bilgiyi burada bulabilirsiniz . Ayrıca, bu bölümü IIS yöneticisinin "yapılandırma düzenleyicisi" aracılığıyla web.config dosyasına ekleyemedim, ancak ekledikten ve yapılandırmayı aradığımda görünüyordu.


5
Bu ConnectionTimeout, httpRuntime'ın yerine geçer executionTimeout.
user2864740

15

Aşağıda, sorununuzu çözmek için gerekli adımlar sunulmaktadır.

  1. IIS'nizi açın
  2. " Siteler " seçeneğine gidin.
  3. Fare sağ tıklama.
  4. Sonra " Web Sitesini Yönet " özelliğini açın .
  5. Ardından " Gelişmiş Ayarlar " ı tıklayın " ı tıklayın.
  6. " Bağlantı Sınırları " bölümünü genişletin , burada " bağlantı zaman aşımı " nızı ayarlayabilirsiniz

resim açıklamasını buraya girin



11

Sorunun ASP ile ilgili olduğunu biliyorum ama belki birileri bu cevabı faydalı bulabilir.

IIS 7.5'in arkasında bir sunucunuz varsa (örn. Tomcat). Benim durumumda Tomcat sunucusu yapılandırılmış bir sunucu grubum var. Bu durumda IIS Yöneticisi'ni kullanarak zaman aşımını değiştirebilirsiniz:

  • gidin Sunucu Çiftlikleri > - {Sunucu Adı} -> proxy
  • Zaman Aşımı'ndaki değeri değiştirme giriş kutusundaki
  • Uygula'yı tıklayın (sağ üst köşe)

ya da cofig dosyasında değiştirebilirsiniz:

  • % WinDir% \ System32 \ Inetsrv \ Config \ applicationHost.config dosyasını açın
  • sunucu webFarm yapılandırmasını aşağıdakine benzer şekilde ayarlayın

Misal:

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

$ {TIME} içindedir mm: HH ss formatında (90 saniye olarak ayarlayın isterseniz öyleyse koymak orada 00:01:30)

Tomcat (ve muhtemelen diğer sunucu uygulaması kapsayıcıları) durumunda, % TOMCAT_DIR% \ conf \ server.xml'deki zaman aşımını değiştirmeyi hatırlamanız gerekir ( Bağlayıcı etiketinde connectionTimeout özniteliğini arayın ve milisaniye cinsinden belirtildiğini unutmayın )


2
Sadece doğrudan sorulan soru ile ilgili cevaplar göndermeniz gerektiğini lütfen unutmayın. Bu soru tamamen IIS ile ilgili olduğundan, Tomcat hakkındaki bilgileri içeren bir cevap gerçekten önemli değildir.
Andrew Barber

9
Bu durumda cevabın burada belirtilen kullanım durumu (başka bir sunucuya yönlendirmek için IIS Uygulama İsteği Yönlendirme'yi kullanarak) IIS ile ilgili olduğunu düşünüyorum. Buradaki ayar IIS Yöneticisi içinde de yapılandırılabilir. FWIW, bu cevap hangi istek zaman aşımını değiştirmem gerektiğini gidermeme yardımcı oldu. (IIS Yöneticisi'nde çok sayıda zaman aşımı ayarı bulunduğundan)
Jensen Ching

3

Yürütme zaman aşımını değiştirmek için aşağıdaki Güç kabuğu komutunu kullanın (İstek Zaman Aşımı)

Bunu varsayılan web sitesi için verdiğimi lütfen unutmayın, bunları kullanmadan önce lütfen siteyi değiştirin ve sonra bunu kullanmayı deneyin.

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

Veya aynı şeyi yapmak için aşağıdaki C # kodunu kullanabilirsiniz

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();
        }
    }
}

Veya bunu yapmak için JavaScript'i kullanabilirsiniz.

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();

Veya AppCmd ​​komutlarını kullanabilirsiniz.

appcmd.exe set config "Default Web Site" -section:system.web/httpRuntime /executionTimeout:"00:01:40" 
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.