2010-12-14 20 views
14

Sorun, ASP.NET'in IIS7 içinde güvenilir ve doğru bir şekilde etkin olup olmadığını belirlemektir.IIS 7'de ASP.NET'in etkin olup olmadığı nasıl algılanır

Server Manager -> 
    Roles -> 
     Web Server (IIS) -> 
      Remove Role Services -> 
       Remove ASP.NET 

applicationHost.config dosya içinde olmalıdır Bunu belirlemek için doğal yer:

Etkinleştirilmesi/Devre Dışı Bırakma giderek bu durumda yapılır. Ancak, ASP.NET'in etkinleştirilmesi veya devre dışı bırakılmasıyla birlikte hala "ManagedEngine" modülüne sahibiz ve hala etiketinde isapi filtresi kaydı var.

Şu anda bulabildiğim en iyi şey, <isapiCgiRestriction> etiketinin aspnet_isapi.dll dosyasını içerip içermediğini veya ASPNET izleme sağlayıcısının kullanılabilir olup olmadığını kontrol etmektir. Ancak, bunlar doğrudan ASP.NET yapılandırmasının varlığını algılamıyor, yalnızca kullanıcı tarafından yeniden yapılandırılabilir bir yan etki algılıyor değil.

Mümkünse, bu yöntemin IIS7 her zaman çalışacağını garanti edebilirsek, sunucu üzerinde Rolls & Hizmetleri numaralandırılıyor olsa da, IIS yapılandırmasını/kurulumunu incelemek isterseniz, bunu yapmayı isterim. kullanıldı. yanıtlar için

Güncelleme

teşekkürler. Tam olarak ne yapmak istediğimi açıklığa kavuşturarak, sunucunun yapılandırmasındaki çeşitli yerlerden ayarların, kullanıcının yazılımın çalışmasına izin verecek şekilde yapılandırması gerekenleri göstermek için tek bir (salt okunur) görünüme çekiyorum. Ben de getirmek gerekir ayarlardan

biri bu biridir: IIS Config showing ASP.NET not installed

bir kırmızıyla vurgulanır.

Ayarı değiştirmemize gerek yok, sadece yeniden üretin. Kullanıcının ASP.NET kutusunu sunucuya IIS rolünü eklediğinde kontrol edip etmediğini görmek istiyorum.

Bunu yapmak istemediğim çeke herhangi bir platforma bağlı bağımlılık eklemek istemediğimden, rol hizmetlerini sıralamak yerine IIS'de güvenilir bir şeye bakarak bunu yapmak isterim. IIS7'yi Rol/Hizmet altyapısına sahip olmayan bir sunucuya kurmanın mümkün olup olmayacağını bilmiyorum, ancak tercihimce bunun için endişelenmem. Ayrıca zaten IIS etrafında fırçalamak için bir kütüphane yüküm var.

Bununla birlikte, Rolleri/Hizmetleri nasıl numaralandıracağınızı bulmakta da sıkıntı çekiyorum, bu yüzden bunu içeren bir çözüm varsa, kesinlikle yararlı olacaktır ve sahip olmanın yan etkisini kontrol etmekten çok daha iyi olacaktır. ASPNET izleme sağlayıcısı etrafında yalan söylüyor.

Ne yazık ki, ASP.NET düğmesini kontrol etmiyorsanız, hala IIS applicationHost.config dosyasında ManagedEngine modülünü alabilirsiniz, bu yüzden güvenilir bir kontrol değildir. ASP.NET'in bir isapi filtresi olarak eşleştirilmesini de sağlayabilirsiniz, bu yüzden bunları kontrol etmek yeterli değildir. Bu şeyler özellikle ASP.NET'in kurulu olduğu ancak kaldırıldığı durumda sorunludur.

En iyi çözüm, Rol Hizmetlerini incelemek olurdu. Ancak, bu konuda API bilgileri oldukça nadir görünüyor, dolayısıyla yardım için ağlama.

+0

Bu bir konsol/pencere uygulaması veya bir IIS uygulamasından mı geliyor? Belirli bir sitede mi yoksa genel olarak mı? – Kev

+0

Algılama, bir winform uygulamasından geliyor. –

+0

Saptama genel olarak yapılmalıdır. Temel olarak, ASP.NET Rol Hizmeti kaldırılırsa, sunucu genişliğinde bir ayardır, bu koşulu algılamak için güvenilir bir yoldan geçtim. –

cevap

14

mutlak yolu bilmek. Bu kayıt defteri anahtarı, IIS'de etkinleştirilen tüm bileşenleri içeren IIS Kurulumu anahtarıdır.

+0

Bu mükemmel, teşekkürler! –

0

Kolay yolu ister misin? Güzel bir güzel olun."ASP.NET yüklemeniz gerekir" diyen bir yer tutucudaki bir div bloğundaki bir hata bloğu ile HTML olarak görüntülenen ve "ASP.NET yüklü" yerine ASP.NET yüklü olarak değiştirilmesini sağlayan aspx sayfası araç, bu web sayfasını varsayılan tarayıcıda IIS'de *: 80 site olarak tanımlanmış dizine kopyaladıktan sonra (veya XML'yi değiştirerek ve sonra daha sonra kaldırarak IIS programında dizin eşleştirmesini oluşturarak) varsayılan tarayıcıda başlatır.

En zarif olanı ise, testin bir XML dosyasında neye karşı kurulduğuna göre hangi özelliklerin kurulduğunu göstermesini sağlar.


o çığlık Çünkü "o tembel cahil yolu yok" seni anımsatacağız beni ben bunları kullanmak denemeden önce bunları test etmektir kullanabileceğim hangi özellikleri javascript bilmek için tek yol, ya da orada olduklarını ve havaya uçtuğunu varsayın. Mesele şu ki, bir dosyada neyin raporlandığı önemli değil, aslında ne kullanabileceğinizi önemli. Sadece C: \ Windows \ Micrsoft.Net \ Framework \ v3.xxxxxxxx var ve dosyaları var dll'ler GAC'de kayıtlı olduğu anlamına gelmez, değil mi?

+0

Bu konuda istekli değilim. Kullanıcıya sormadan, gerekli tüm URL'leri doğru bir şekilde çalışmadan, arka planda, uçtan uca bir denetim kurmak yerine, belirli bir "bu bileşen eksik" testini arıyorum. Bozuk yüklemeler kesinlikle bir problem, ama eksik bileşenleri aramakla daha çok ilgileniyorum. Benim amaçlarım için .net3 klasörünün mevcut olup olmadığını kontrol etmek yeterli değil. –

+0

Bunun tembel kolay yolu olduğunu söylediğim gibi. ASP.NET'in bir VM'deki temiz bir makineye yüklenmesinden önce ve sonra applicationHost.config'in bir anlık görüntüsünü yapmayı denediniz mi? – jcolebrand

+0

Evet, iki yapılandırma dosyası arasında bir fark yaptım ve güvenilir olan tek şey, soruda bahsedilen iki ayardır. Soruyu daha ayrıntılı bilgilerle güncelledik. –

2

Asp.net'in yüklü bir özellik bile olup olmadığını belirleme (etkinleştirme için ön koşul), PowerShell aracılığıyla yapılabilir. Bu, yeterince zor kazandığınızda bunun için. PowerShell yöntemleri: Microsoft.Windows.ServerManager.Commands.Feature türünde bir nesne döndürecektir. installed özelliği, boole'tir ve özelliğin yüklü olup olmadığını gösterir. Eğer 1, ASPNET ve NetFxEnvironment ve NetFxExtensibility ayarlı iki değeri görmelisiniz İçeride

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\InetStp\Components 

: onlar seçili olup aşağıdaki kayıt defteri anahtarını aramak için ise

+0

hiç kimse bunu nasıl yansıtacağını biliyor mu, yoksa montajı yapmak için mi? Ayrıca, SF'ye gitmek iyi bir fikir gibi görünüyor. – jcolebrand

İlgili konular