2012-10-26 15 views
7

Web uygulamalarının başlatılmasının hızını artırmak için IIS 7.5 için Uygulama Başlatma Modülü'nü kullanan Proof of Concept'ın bir parçası olarak, IIS 7.5 üzerinde barındırılan basit bir web uygulaması oluşturdum (Windows Server 2008 R2) SSL etkin. Lütfen aşağıdaki global ve yerel ayarlara bakın.IIS 7.5 sorunu için Uygulama Başlatma Modülü

Uygulama Başlatma Modülünün çalışma şeklini doğru olarak anlarsam, IIS'yi web uygulamasını başlatmak için appinit.aspx (https://localhost/alwaysrunning/appinit.aspx) isteğini yayınlamasını bekliyorum. Ancak bu asla gerçekleşmez.

Herhangi bir fikrin var mı?

Özellik initializationPage'ın amacı nedir?

Bu konuda herhangi bir yardım çok takdir edilecektir.

DÜZENLEME: SSL'yi devre dışı bıraktığımda, Uygulama Başlatma Modülü appinit.aspx'in beklendiği şekilde bir istek yayınlar. Bununla birlikte, SSL ile çalışabilmem için bunu almam gerekiyor.

Zen

applicationHost.config dosyasında

Genel ayarlar:

<add name="appinit" autoStart="true" startMode="AlwaysRunning"> 
    <recycling logEventOnRecycle="Time, Requests, Schedule, Memory, IsapiUnhealthy, OnDemand, ConfigChange, PrivateMemory"> 
     <periodicRestart requests="0" time="00:05:00"> 
      <schedule> 
       <clear /> 
      </schedule> 
     </periodicRestart> 
    </recycling> 
    <processModel identityType="NetworkService" idleTimeout="00:00:00" /> 
</add> 

<application path="/alwaysrunning" preloadEnabled="true" applicationPool="appinit"> 
    <virtualDirectory path="/" physicalPath="C:\inetpub\wwwroot\alwaysrunnig" /> 
</application> 
uygulamanın web.config dosyasında

Yerel ayarlar:

<applicationInitialization remapManagedRequestsTo="splashscreen.htm" skipManagedModules="true" > 
    <add initializationPage="/appinit.aspx" /> 
</applicationInitialization> 

cevap

4

(biliyorum, bayat soru, ama yanıtlanmamış & kendi Googl'umda geldi e konu ile ilgili arama.)

Microsoft Destek'ten şu makaleye bakın: Application Initialization module fails when web site requires SSL (KB2843964). Alıntı:

Nedeni

Bu davranış tasarım gereğidir.

Çözünürlük

Bu sınırlamayı gidermek için şunları HTTP etkinleştirmeyi düşünebilirsiniz (/ SSL Ayarları ııs'deki ayarı "SSL gerektir" işaretini kaldırın) ve HTTPS HTTP isteklerini yönlendirmek için bir URL Yeniden Yazma kuralı kullanın hariç istek ısınma modülünden gelen:

<rewrite> 
    <rules> 
    <rule name="No redirect on warmup request (request from localhost with warmup user agent)" stopProcessing="true"> 
     <match url=".*" /> 
     <conditions> 
     <add input="{HTTP_HOST}" pattern="localhost" /> 
     <add input="{HTTP_USER_AGENT}" pattern="Initialization" /> 
     </conditions> 
     <action type="Rewrite" url="{URL}" /> 
    </rule> 
    <rule name="HTTP to HTTPS redirect for all requests" stopProcessing="true"> 
     <match url="(.*)" /> 
     <conditions> 
     <add input="{HTTPS}" pattern="off" /> 
     </conditions> 
     <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" /> 
    </rule> 
    </rules> 
</rewrite> 

Gotta seviyorum "Bu davranış gereğidir tasarımı." Sigh. Ne yazık ki, bu Uygulama Başlatma özelliğiyle ilgili bulduğum en iyi arama sonuçları, "HTTP isteği" ifadesini kesinlikle güvenli olmayan istek olarak nitelendirmedikçe, — numaralı sınırlamadan bahsetmez.

+1

Teşekkürler, bu beni çok fazla hayal kırıklığına uğrattı! –

+0

@AaronD Rica ederim. Sevindim, başka birine yardım etti! –

+0

@ ChrisW.Rea Ne akıllı bir fikir. Teşekkürler! – UncleZen

İlgili konular