Komut dosyası, IIS7.5'te statik dosya işleyicisi tarafından sunulmuyor


130

İlk web uygulamamı Windows 7 Home Premium dizüstü bilgisayarımda IIS'ye dağıtmaya çalıştım. Uygulamayı oluşturduktan sonra, Klasik Uygulama Havuzuna geçmem ve ardından bu havuzu Framework 4.0 için ayarlamam gerekti. Şimdi şu hatayı alıyorum:

HTTP Hatası 404.17 - Bulunamadı İstenen içerik komut dosyası gibi görünüyor ve statik dosya işleyicisi tarafından sunulmayacak.

İstenen URL şu şekildedir: http: // localhost: 80 / pvmms / default.aspx

Korkarım kapsamlı Google, birlikte çalışmam için yeterince net veya kesin hiçbir şey vermedi ve her zamanki gibi uzmanlara döndüm.

DÜZENLEME: Bunun, .aspx dosyaları için çerçeve 4.0 işleyici eşlemeleri olmadığından şüpheleniyorum. Ancak aspnet_regiis, yönetici kullanıcıma parmak bile veriyor ve çalıştırmak için yönetici haklarına ihtiyacım olduğunu söylüyor.

DÜZENLEME # 2: Tüm çerçeveleri (2 & 4, 32 ve 64) kaydettim ve şimdi hepsi çalışıyor. Bunu .aspx, aspnet_isapi ve voila için manuel olarak bir komut dosyası haritası ekleyerek buldum . Belleğim hata vermedikçe ve IIS'yi yalnızca VS'yi yükledikten sonra etkinleştirmediysem, çerçevenin kurulumunun neden bunu yapmadığını anlamıyorum.


Alternatif olarak, burada açıklandığı gibi web.config içinde yapın stackoverflow.com/questions/2061678/…
bizl

Yanıtlar:


120

Belki şimdi çok geç, ama daha sık koşman gerekmiyor

aspnet_regiis.exe -i  

asp.net'i kurduktan sonra. Belki şimdi yine de yapardım.


17
.NET Framework ile birlikte gelen iki IIS Kayıt Aracı vardır; biri standart sistemler ve diğeri 64 bit sistem için. Windows klasörünün içindeki Microsoft.NET dizininin Framework64 dizininde bulunan 64-bit sistemler için araç; örneğin C: \ WINDOWS \ Microsoft.NET \ Framework64 \ v2.0.50727, IIS Kayıt Aracını içerir.
Matthew Lock

3
Hatayı alırsanız the command is not recognized as an internal or external command. Geliştirici Komut İstemi'nde çalıştırın.
rockXrock

1
Bunu Framework64 klasöründeki 2.0 çerçevesi için yapmak zorundaydım. @matthew Lock'un söylediği gibi
kodlamaGece Kabusları

Ayrıca, 2.0 ve 4.0'ı çalıştırmanız gerekiyorsa, önce 2.0'ı çalıştırın.
SouthShoreAK

C: \ Windows \ Microsoft.NET \ Framework64 \ v2.0.50727 (x64 üzerinde v2.0 için) - Framework64'ü x86 için Framework olarak değiştirin, v2. * 'Yi v4 için v4. * Olarak değiştirin (tam ad için ana klasöre göz atın)
JohnLBevan

63

Yukarıdakilere ek olarak, WCF desteğine ihtiyacınız varsa, bunu çalıştırmanız gerekebilir:

c:\Windows\Microsoft.NET\Framework\v3.0\Windows Communication Foundation\ServiceModelReg.exe -i

V3.0'ı mevcut çerçeve sürümünüzle değiştirin.


1
Başkalarına not edin, 4.0 uygulama havuzunu kullanan web uygulamalarında aspnet_regiis'i tekrar çalıştırmanız gerekeceğini düşünüyorum
Tim Gabrhel

1
.Net 4 için üst dizinde. Örneğin: C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ ServiceModelReg.exe -i
bytedev

57

Yazdığım bir WCF hizmetine erişmeye çalışırken IIS 8.5'ten bu hatayla karşılaştım. Sunucunun WCF HTTP Etkinleştirme özelliklerinin açık olmadığı ortaya çıktı. Kutuları işaretledim ve sihirbaz üzerinden tıkladım, iisreset, çalışmaya başladı.

Windows Özellikleri Paneli


1
Bu benim için IIS 8.5 ve Windows 8.1 ile çalıştı. Söz açıklanan hata alıyorum bir ashx etkinleştirmek için gerekli (HTTP 404,17)
Sergio A.

TEŞEKKÜR EDERİM! Bu benim için çalıştı. Ancak, benim durumumda, eski Web Hizmetini kullandığım için onu .NET 2.0 için açmak zorunda kaldım
Stefan Vasiljevic

Bu eski bir gönderi ama çözümünüz pastırmamı kurtardı. Bunu bir milyon yıl içinde bulamazdım ... başka hiçbir yerde. Teşekkür ederim.
Joe Schmucker

48

İis 7.5 kullanıyorsanız.

Sadece IIS Yöneticisine gidin, web sitesi özelliklerinizi açın.

Orada 'İşleyici Eşlemeleri' bölümünü göreceksiniz, sadece o bölüme gidin ve 'staticFile' arayın.

Muhtemelen listedeki son dosyadır.

Sonra Sağ tıklayın ve 'Ebeveyne Geri Dön'ü seçin.

Bununla ilk karşılaştığımda çok fazla saatimi boşa harcadım, neyse bu senin problemini çözecek.


2
Adi'nin yanıtladığı gibi: bu komando sadece hepsini yapar: c: \ Windows \ Microsoft.NET \ Framework \ v3.0 \ Windows Communication Foundation \ ServiceModelReg.exe -i
JDC

Teşekkürler @Kumar bahşiş için! IIS> Siteler> acme.com> İşleyici Eşlemeleri> Üst Öğeye Döndür. Benim durumumda, bunu sadece "staticFile" için değil, tüm etki alanı için yaptım. Bu benim için çalıştı ve bir yürütülebilir (aspnet_regiis.exe) çalıştırmaktan daha basit / tercih edilebilirdi. Bu öneri neden daha da artmıyor? =)
jiminy

Harika bir ipucu ... ama bu gösterici nereden geldi? IIS'nin önceki sürümlerinde bununla tanıştığımı hiç hatırlamıyorum ...!
Mike Gledhill

25

ASP .NET 4.5 ile Windows Server 2012'de bu sorunu yaşadım, aspnet_regiis.exe'yi kullanamazsınız ve yalnızca ASP .NET 4.5'i Rol ve Özellik Ekleme Sihirbazı aracılığıyla yüklemeniz gerekir:

görüntü açıklamasını buraya girin

Sunucu Yöneticisi'nin sağ köşesindeki "Yönet" menüsünde "Rol ve Özellik Ekle" menü öğesini bulabilirsiniz.


1
Sunucu Yöneticisinin sağ köşesindeki "Yönet" menüsünde bulabileceğiniz "Rol ve Özellik Ekle" menü öğesi
Alexander Trofimov

16

alternatif metin

Sanırım bu seçeneği kontrol etmelisiniz


1
Bu sadece statik içeriğin sunulup sunulmayacağını belirler. Benim sorunum, komut dosyası isteklerinin statik içerikle eşleştirilmesi. Kapatırsam, IIS sayfayı sunmaya bile çalışmıyor, sadece bana bir boşluk bırakıyor.
ProfK

16

Bu sorunu etkinleştirerek çözdüm WCF Services

Programs and Features > NET Framework 4.5 Services > WCF Services> HTTP Activation node

Ama itiraf etmelisiniz, bu TÜM IIS kurulumunu yapılandırın / tahmin edin / deneyin ve bunu görün / deneyin / günümüzün 4 veya 5'ini bir yaklaşım etrafında bir çözüm bulmaya harcayan, TAM BİR ŞEKİLDİR.

KESİNLİKLE, 'IIS', BUGÜNE KADAR İNSANLIK ÜZERİNDE OYNANAN EN BÜYÜK GÜVEN TRİKOSU


1
Tek yapmanız gereken, IIS için statik içerik özelliğini etkinleştirmektir. Bunun WCF ile ilgisi yoktur.
ProfK

1
@ProfK, neden bu hatayı aldığınıza bağlıdır, farklı nedenler aynı hataya neden olur - WCF'yi kullanacak şekilde yapılandırılmış bir SVC dosyasıyla hata alıyorsanız, yukarıdaki hatayı düzeltir.
JohnLBevan

LOL tamamen aynı fikirde, birkaç siteyi taşıyor ve sadece 5 farklı türde hata gördü, hepsi gerçek bir hata mesajı veya çok şifreli bir hata olmadan. Örnek "Bir dahili sunucu hatası oluştuğu için sayfa görüntülenemiyor", zaten var olan bir statik içerik mime türü eklediğiniz anlamına gelir.
mike nelson

15

Bunun eski bir soru olduğunu biliyorum, ancak bunu yeniden oluşturulmuş Windows 8 makinemde bir 3.5 uygulamasıyla aldım ve bunu hala alıyordum aspnet_regiis -iruve ASP.NET 3.5'in Uygulama Geliştirme Özellikleri içinde işaretlenmediği ortaya çıktı. (bir resim yayınlamak için yeterli itibar yok).


2
@bicbmx görüntü için, bir yere yükledikten sonra bir bağlantı paylaşabilirsiniz, örneğin imgur.com
superjos

12

Uygulamanız için oluşturulan uygulama havuzunun varsayılan olarak sürüm 2 olması ihtimali vardır. Dolayısıyla, listede .svc uzantısı için bir işleyici görseniz de, çalışmaz ve onu statik dosya olarak değerlendirmez. İhtiyacınız olan tek şey uygulama havuzu özelliklerini açmak ve onu sürüm 4'e geçirmek.


8

Asp.net'e tekrar kaydolun .... sorunu çözecektir.
görüntü açıklamasını buraya girin

Visual Studio Komut İstemi'ne gidin ve
asp.net'i windows \ microsoft.net \ Framework [.Net sürüm num] \ aspnet_regiis.exe -i olarak kaydedin


2
aspnet_regiis.exe -i, "Bu seçenek, işletim sisteminin bu sürümünde desteklenmiyor" şeklinde yanıt verir. IIS neden başımıza bu kadar acı veriyor?
Paul McCarthy

5

Aynı sorunu kurduğum bir Windows 8 makinesinde de yaşadım. .NET framework 4.5'i kuran vs2010'dan önce vs2012'yi kurmuştum. 4.0'da çalışan uygulama havuzlarım var. Aspnet_regiis -i kullanarak 4.0 için aspnet kaydım olduğundan emin oldum. Bu yine de işe yaramadı. Sonra Windows Özelliklerini açtım ve 4.5'in ".NET Framework 4.5 Gelişmiş Hizmetler" adlı bir set eklediğini fark ettim. WCF Hizmet düğümünü ve altlarını etkinleştirdim ve ardından svc uç noktam doğru şekilde çalıştı. Umarım bu, Windows 8'e geçiş yapan insanlara yardımcı olur.


Sunucu 2012, IIS8 burada da doğru yöne gitmemi sağladığınız işaretçi için teşekkürler. İlgilenenler için, Uygulama Sunucusu rolünün yanı sıra Web Sunucusu Rolünü de açmam gerekiyordu. İhtiyacım olan bilgiyi burada buldum: msdn.microsoft.com/en-us/library/hh167503(v=nav.70).aspx
John

3

Aynı sorunla karşılaştığımda bu soruya rastladım. Sorunumun temel nedeni, yanlış yapılandırılmış bir uygulama havuzuydu. 4.0 olarak ayarlanması gerektiğinde, istemeden 2.0'a ayarlandı. Aşağıdaki bağlantıdaki yanıt, bu sorunu ortaya çıkarmama yardımcı oldu: http://forums.iis.net/t/1160143.aspx


2

Ben de aynı sorunu yaşadım. IIS için Statik içerik özelliği eklediğimde, sorunsuz çalışıyor.


2

Aynı hata mesajını gördüğüm başka bir olası çözüm.

Yeni bir uygulama havuzuna bir .NET 4.0 web uygulaması kurmaya çalışırken, aspx dosyamı statik dosya işleyicisi ile işlemeye çalıştığını söyleyen bu garip hatayı alıyordum, bu mantıklı değildi.

Bazı nedenlerden dolayı, .NET 4.0 için ISAPI , IIS yöneticisinde sunucu düzeyinin ISAPI ve CGI Kısıtlamaları alanında devre dışı bırakıldı . Etkin olarak ayarlamak gerekli olan tek şeydi , ancak IIS 7.5 yöneticisi o kadar karmaşık ve takip etmesi zor, bunu anlamam uzun zaman aldı.

4.0 Engine tarafından işlenemeyen bir 4.0 Uygulaması olduğu için statik dosya işleyicisinin varsayılan olarak kullanıldığını tahmin ediyorum.


2

Bunu okuyan diğer insanlar için:

Bu, kaydettiğiniz .Net sürümü, web sitenize ekli uygulama havuzunun 'Temel Ayarlar' altında seçili değilse olabilir. Örneğin, sitelerinizin uygulama havuzunda .Net v2.0 seçildi, ancak siz v4.0'ı kaydettiniz


2

Windows 10 / Framework 4.7 için aşağıdaki yöntemle HTTP Etkinleştirmeyi açmam gerekiyordu:

  1. Denetim Masası> Programlar ve Özellikler> Windows Özelliklerini Açın veya Kapatın
  2. .NET Framework 4.7 Gelişmiş Hizmetler altında, WCF Hizmetleri'ni genişletin, HTTP Etkinleştirmeyi ve WCF ile çalışırken ihtiyacınız olan diğer her şeyi kontrol etmeyi seçin.
  3. Tamam'a tıklayın ve yüklemenin işini yapmasına izin verin, ardından bir yönetim komut istemi açın ve IISRESET komutunu verin

1

cmd -> sağ tıklama -> Yönetici olarak çalıştır

C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ aspnet_regiis.exe -i


0

IIS yöneticisini kullanarak, ASP.NET 4.5 önceden yüklenmiş olmasına rağmen .aspx dosyalarının ISAPI 2.0 ile eşlendiğini ("İşleyici Eşlemeleri" altında) buldum. Bunları ISAPI 4.0 64bit için bir yürütülebilir dosyayı (ayrıca) gösterecek şekilde düzenlemek sorunu çözdü.

Yürütülebilir dosya% windir% \ Microsoft.NET \ Framework64 \ v4.0.30319 \ aspnet_isapi.dll konumunda bulundu


0

iis 7.5 üzerinde .net 2.0'a atanmış klasik uygulama havuzuna sahip bir uygulama için bu mesajı aldım. İşleyici Eşlemeleri'ne gidip iki komut dosyası haritası eklemem gerekiyordu, ad dışında ikisi de aynıydı. bir ad svc-ISAPI-2.0-64, diğeri svc-ISAPI-2.0 idi. İstek yolu .svc idi. Ve Yürütülebilir dosya% SystemRoot% \ Microsoft.NET \ Framework64 \ v2.0.50727 \ aspnet_isapi.dll idi. iis'i yeniden başlattım ve her şey mutluydu


0

Az önce çözdüğüm en kötü senaryolardan biri Web.config dosyasında çakışan giriş olması.

Yerel makinemde IIS'de kayıtlı .woff uzantısı yoktu, bu yüzden Web.config kullanarak ekledim. Ancak üretim sunucusunda .woff kayıtlı mime tipine sahipti. Bu, uygulama düzeyinde çakışmaya neden oldu.

İşin garibi, bunun için kaydedilmiş bir hata yok. Sadece bir tahmin çalışması (elbette ilk kez).

Bu yüzden benim için çözüm sadece web.config'den ve / veya öğeleri kaldırmaktı.


0

Ben de aynı sorunu yaşadım, web sitesindeki hedef çerçeve sürümünü geliştirildiği sürümle değiştirdim, IIS'de Aynı. Bu benim sorunumu çözdü. Bu yardımcı olur umarım...

Teşekkür ederim


0

Benim durumumda Uygulama havuzu-> ileri ayar-> 32 bit uygulamayı etkinleştir (doğru olmalıdır) altında birden çok neden olabilir. Daha önce yanlış olarak ayarlanmıştı.


-1

CMD veya powershell kullanarak .Net ve CPU mimarisi dizininizin tadına gidin

Şu komutu girin: aspnet_regiis –r


Windows Server 2008 R2'de şöyle diyor: "Bu seçenek Windows Vista'da desteklenmiyor."
CSharper

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.