Windows 8'de IIS'de WCF hizmetleri sunulamıyor


199

Bir Windows 8 makinesinde IIS'de WCF hizmeti sunmaya çalıştığımda iyi bilinen hatayı alıyorum

Uzantı yapılandırması nedeniyle istediğiniz sayfa sunulamıyor. Sayfa bir komut dosyasıysa, bir işleyici ekleyin. Dosyanın indirilmesi gerekiyorsa, bir MIME haritası ekleyin.

Etrafta eski iş çalıştırmak oldu aspnet_regiis -iama bu komut Windows 8 veren yanıt reddedilmiş gibi görünüyor This option is not supported on this version of the operating system. (...).

Etraftaki iş ne olurdu?

(Düzenli aspxsayfaları zaten başarıyla etkinleştirdim , bu nedenle IIS yapılandırmasının çoğu sağlıklı görünüyor.)


aspnet_regiis -iWindows 8 öncesi kullanıcılar için komut hakkında daha fazla bilgi için şu bağlantıya bakın: aspsnippets.com/Articles/…
David

Yanıtlar:


406

Beyin yok gibi görünüyordu; WCF hizmeti Programs and Features -> Turn Windows features on or off, Denetim Masası'ndan etkinleştirilmelidir . Mdsn'deki bu blog gönderisinde açıklandığı gibi gidin .NET Framework Advanced Services -> WCF Servicesve etkinleştirin .HTTP Activation

Komut isteminde (yönetici olarak) şunları çalıştırabilirsiniz:

C:\> DISM /Online /Enable-Feature /FeatureName:WCF-HTTP-Activation
C:\> DISM /Online /Enable-Feature /FeatureName:WCF-HTTP-Activation45

Bir hata alırsanız aşağıdakileri kullanın

C:\> DISM /Online /Enable-Feature /all /FeatureName:WCF-HTTP-Activation
C:\> DISM /Online /Enable-Feature /all /FeatureName:WCF-HTTP-Activation45

6
IIS Yöneticisi'ne bakarak zaman geçirdim. IIS Yöneticisi'nin, kullanıcıya .NET Framework Gelişmiş Hizmetlerini yönlendiren veya bildiren bir simge olması gerektiğini düşünüyorum.
Tony_Henrich

Komut istemini kullanarak "İşlem tamamlandı ancak WCF-HTTP-Etkinleştirme özelliği etkin değil. Gerekli bir üst özellik etkinleştirilmemiş olabilir. / Enable-feature / all seçeneğini kullanarak her bir üst özelliği otomatik olarak etkinleştirebilirsiniz Üst özellikler zaten etkinse, daha fazla tanı için günlük dosyasına bakın. ". Bunun yerine neyi açtığımı bilmek için GUI yöntemini kullandım ve işe yaradı.
Ben Adams

5
Ben "Ben Anderson gerekli bir üst özellik etkin olmayabilir" hatası var ve /alldaha sonra iyi çalıştı hata mesajı ( bağımsız değişken ekleyerek ), öneri çalıştı DISM /Online /Enable-Feature /all /FeatureName:WCF-HTTP-Activation45.
Troy Gizzi

1
Siz efendim, harikasınız. Ayrıca .Net Framework sürümüne bağlı olarak yapılabileceğini de (küçük bir ayrıntı) ekleyebilirsiniz. Olduğu gibi.NET 3.5 Framework Advanced Services -> Windows Communication Foundation HTTP Activation
rion18

Bu bir hayat kurtarıcı. Bu soruna yönelik çevrimiçi çözümlerin çoğu yalnızca Web özellikleri altında .Net 3.5 Framework'ü etkinleştirmenizi sağlar. YETERLİ DEĞİL. Ayrıca burada belirtilen adımı atmanız gerekir.
markaaronky

95

Windows Server 2012 için çözüm, faester'lere çok benzer (yukarıya bakın). Sunucu Yöneticisi'nden tıklayın Add roles and features, uygun sunucuyu seçin ve ardından seçin Features. Altında .NET Framework 4.5 Featuresgöreceksiniz WCF Servicesve bunun altında bulacaksınız HTTP Activation.


Bunun için teşekkür ederim ! Peki ya .Net 4? Bu özellikleri etkinleştirmenin .Net v4.0 için de aynı şeyi yapacağını mı düşünüyorsunuz?
Aladdin Gallas

2
Varolan herhangi bir web uygulamasında, Windows özelliğini ekledikten sonra aşağıdakileri de yapmanız gerekir: - inetmgr başlat - "İşleyici eşlemeleri" ni açın - * .svc uzantısı için svc-ISAPI eşlemelerinin mevcut olup olmadığını kontrol edin. Değilse, üst web sitesinden kopyalamak için "Ebeveyne Geri Dön" eylemini kullanın. Bunun, özel işleyici eşlemelerinin uygulama için web.config dosyasında, genellikle IIS7 + 'da olduğu gibi yapılandırıldığını varsaydığını unutmayın. Değilse, "Ebeveyne Dön" i yürütürken bunları kaybedersiniz.
Berend Engelbrecht

13

Lütfen IIS 8.0'da aşağıdaki iki adımı uygulayın

Yeni MIME türü ve HttpHandler ekle

  1. Uzantı: .svc, MIME türü: application / octet-stream

  2. İstek yolu: * .svc, Tür: System.ServiceModel.Activation.HttpHandler, Ad: svc-Integrated


Net 3.5 (Http ve Http Olmayan Etkinleştirme) ve WAS'yi etkinleştiremeyen çok eski Windows 7 Kurulumum için en iyi çözüm. İşletim sistemini yeniden yüklemek için çok hassas
user919426

Özellikle kendi işleyicilerinizi oluştururken ve eklerken bu yöntemi bilmeye değer. Bununla birlikte, 'Windows özelliklerini aç ve kapat' seçeneğini kullanırsanız, bilinen dosya uzantılarının çoğunu alırsınız; bu, her birini ayrı ayrı ekleme (ve tüm doğru ayrıntıları bulma) zamanından tasarruf etmenizi sağlar
Daniel Hollinrake


3

Bu, faester'in çözümü ve Bill Moon'un çözümü ile gerçekten aynı çözümdür, ancak PowerShell ile şu şekilde yapabilirsiniz:

Import-Module Servermanager
Add-WindowsFeature AS-HTTP-Activation

Elbette, DISMPowerShell'den sizi aramanızı engelleyecek hiçbir şey yok.


Çok hoş. Bilgi için teşekkürler.
Rod Hartzell

-1

bu kodu asp mvc içindeki web.config dosyasına ekleyebilirsiniz

   <system.webServer>
    <staticContent>
      <remove fileExtension=".srt" />
      <mimeMap fileExtension=".srt" mimeType="text/srt" />
      <remove fileExtension=".vtt" />
      <mimeMap fileExtension=".vtt" mimeType="text/vtt" />
    </staticContent>
  </system.webServer>

dosya uzantısını dosya uzantınızla değiştirebilirsiniz


Hi @malik - Eşleme dosya uzantılarının svc-endpoints çalışmasını nasıl yapabileceğini açıklığa kavuşturabilir misiniz?
faester

doğru anlarsam, uzantıyı istediğiniz ile değiştirebilirsiniz. Feedforall.com/mime-types.htm adresinden bakabilirsiniz. ama başka bir şey söyleyebilirim, üzgünüm anlayamıyorum.
malik masis
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.