IIS8'de WCF; * .svc işleyici eşlemesi çalışmıyor


272

Ben 2012 inşa 8400 IIS8 çalışan bir wcf hizmeti almaya çalışıyorum.

Web rolünü yüklerken, wcf öğeleri (3.51'in altında) 2008'deki gibi bulunmadı.

Yüklendiğinde svc işleyici eşleme eksik, bu yüzden bir yaptım:

%windir%\Microsoft.NET\Framework\v3.0\WindowsCommunication Foundation\ServiceModelReg.exe i

Şimdi işleyici eşlemesi orada, ama yine de:

The resource you are looking for does not have a handler associated with it.

(Statik dosya işleyicisini kaldırdım.)

Site, kimliğe bürünmeyi kullanmak için klasik boru hattını kullanıyor.

Yanıtlar:


553

Daha spesifik olarak:

  1. Çalıştır Server Manager(görev çubuğunda ve başlat menüsünde)
  2. Yönetilecek sunucuyu seçin (muhtemelen yerel sunucu)
  3. " Roles and Features" Bölümüne ilerleyin .
  4. Add Role or FeatureGörevler açılır menüsünden " " seçin
  5. " Add Role or Feature Wizard" İletişim kutusunda, Featuressoldaki sayfalar listesinden " " işaretine tıklayın .
  6. Yüklediğiniz öğeye bağlı olarak ".Net 3.5"veya öğesini genişletin ".Net 4.5". ( roleseğer yoksa eklemek için " " ekranına geri dönebilirsiniz .
  7. " WCF Services" Altında, " " kutusunu işaretleyin HTTP-Activation. Ayrıca ihtiyacınız olmadığını biliyorsanız http olmayan türler de ekleyebilirsiniz (tcp, adlandırılmış yöneltmeler vb.).
  8. "Install"Düğmeye tıklayın .

6
Bu benim durumumda işe yaramadı çünkü Windows 8'deyim (IIS 8 ile).
Josh Mouch

9
ServiceModelReg.exe –i dosyasını v3.0 dizininden ilk kez çalıştırdıysanız, bunun çalışması için geri almak için ServiceModelReg.exe –ua'yı da çalıştırmanız gerekir.
Scott Anderson

14
Komut satırından: dism / Online / Enable-Feature / FeatureName: WCF-HTTP-Etkinleştirme / Tümü
Richard

4
Gyorgybalassy.wordpress.com/2012/09/24/… hakkında ne var ? hangisi daha iyi bir yol?
Kiquenet

9
Kelimenin tam anlamıyla bir saat boyunca "Sunucu Rolleri" sayfasına bakıyordum. "İleri" yi veya soldaki "Özellikler" i tıklayabileceğiniz konusunda hiçbir fikrim yoktu. o_O +1
Dan Bechard

219

Ben etkinleştirmek zorunda HTTP Activationiçinde .NET Framework 4.5 Advanced Services>WCF Services

HTTP Etkinleştirmeyi Etkinleştir


10
sunucu yöneticisi olmayan Windows 8 için yapmanız gerekenler budur
Simon_Weaver

2
Windows 8 ve Windows 8.1'de WCF Hizmetini barındırdığınızda cevap budur
vcRobe

Http aktivasyonu. Http / https kullanmanız farketmez mi? Yani her ikisi için de bir özet adı var mı ya da hala orada bir ayrım gerekli mi?
Thomas

2
IIS 10'da benzer bir sorunla karşılaştım, Http Etkinleştirmesi varsayılan olarak kapalı. Etkinleştirilmesi sorunu hemen çözdü. Teşekkürler!
dhruvpatel

4
Windows 10, IIS 10 için çalışır
watbywbarif

45

'Windows Özelliklerini açma veya kapatma' için aşağıdakileri açın

Net Framework 3.5 - WCF HTTP Etkinleştirmesi ve Http Olmayan Etkinleştirme

b) WCF Hizmetleri kapsamındaki


1
Sadece .Net Framework
3.5'i

40

IIS8 ile Windows 8

  • hit Windows+X
  • Seçin Programs and Features(listedeki ilk öğe)
  • Turn Windows Features on or offSol taraftan seçin
  • genişletmek .NET Framework 4.5 Advanced Services
  • genişletmek WCF Services
  • etkinleştirme HTTP Activation

herhangi bir powershell betiği programlı olarak mı?
Kiquenet

bir sunucumuz var, bu yüzden hiç gelişmiş Powershell'e
giremiyorum

28

Bunu bugünlerde bir senaryo ile yapmayı tercih ediyorum

REM install the needed Windows IIS features for WCF
dism /Online /Enable-Feature /FeatureName:WAS-WindowsActivationService
dism /Online /Enable-Feature /FeatureName:WAS-ProcessModel
dism /Online /Enable-Feature /FeatureName:WAS-NetFxEnvironment
dism /Online /Enable-Feature /FeatureName:WAS-ConfigurationAPI
dism /Online /Enable-Feature /FeatureName:WCF-HTTP-Activation
dism /Online /Enable-Feature /FeatureName:WCF-HTTP-Activation45

REM Feature Install Complete
pause

2
Teşekkürler dism /Online /Enable-Feature /FeatureName:WCF-HTTP-Activation dism /Online /Enable-Feature /FeatureName:WCF-HTTP-Activation45benim için yeterli ...
Shubh

Bu, Windows Server'ın yeni 2012R2 + sürümünde düzeltmenin en iyi yoludur. Muhtemelen 2012'de de çalışıyor ama neyse ki, bunu denemek için artık bunlara sahip değilim.
Paul Sturm

ve PowerShell betiği nasıl kullanılır ?
Kiquenet

@Kiquenet Bu komutların tümü powershell'de çalışır. Shubh'un komutunu doğrudan kopyalamaya çalıştıysanız, ikinci dism komutundan önce ilk komuttan sonra bir satır sonu veya noktalı virgül eklemeniz gerekir.
kb4000

10

Hatayı Windows Server 2012 altında şu şekilde çözmeyi başardık:

  1. "Rolleri ve Özellikleri Kaldırma Sihirbazı" ndan Kaldırma .NET Framework 4.5 Features / ASP.NET 4.5 ve tüm bağımlı özellikleri
  2. Kaldırılan özellikleri yeniden yükleme.

Kurulum sırası neden gibi görünüyor.

Ayrıca, WCF Hizmetleri altında HTTP Etkinleştirmesi yüklü olduğundan emin olun.


Bunu yaptım ve sunucumu öldürmüş gibiyim. Ben sadece iis altında asp.net şeyler kaldırdım, ama şimdi uzak zaman bir siyah ekran ve bir komut istemi penceresi alıyorum, sunucu gibi sadece "sunucu çekirdeği" şimdi ... :(
MGOwen

@MGOwen, .net 4.5'in bazı özelliklerini kaldırdığınızda Sunucu Grafik Kabuğunu da kaldırmış gibi görünüyor, bu bazı komutlarla yeniden eklenebilir.
John

3

Windows 8 makineleri için "Sunucu Yöneticisi" uygulaması yoktur (en azından uygulamayı bulamadım).

Yine de sorunu çözebildim . Aşağıdaki işlemleri hangi sırayla yaptığımdan emin değilim, ancak aşağıdaki eylemlerden biri / birkaçı yardımcı görünüyor:

  1. 'Windows Özelliklerini Açma veya Kapatma' konusunda aşağıdakileri açın: a) .Net Framework 3.5 - WCF HTTP Etkinleştirmesi ve Http Olmayan Etkinleştirme b) tümü WCF Hizmetleri altında (bu sorunun yanıtlarından birinde belirtildiği gibi)

  2. "% windir% \ Microsoft.NET \ Framework \ v3.0 \ Windows Communication Foundation \" klasöründe "ServiceModelReg.exe –i" yürütüldü

  3. ASP.NET 2.0'ı iki komutla kaydettirildi (C klasöründe: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727):

    aspnet_regiis -ga "NT AUTHORITY \ NETWORK SERVICE" aspnet_regiis -iru

  4. PC yeniden başlatıldı ... ASP.NET yapılandırmamda ## 3 ve 4 eylemlerinin bir sonucu bozuldu gibi görünüyor

  5. 2. işlemi tekrarlayın

  6. "Programlar ve Özellikler" den iki seçenek daha yükleyin: .Net Framework 4.5 Advanced Services. Her iki alt seçeneği de kontrol ettim: ASP.NET 4.5 ve WCF hizmetleri

  7. Uygulama Havuzunu yeniden başlatın.

Sıra biraz çılgınca, ama bu bana yardımcı oldu ve muhtemelen diğerlerine yardımcı olacak


Anahtar bit HTTP Aktivasyonunu açıyor.
Umar Farooq Khawaja



2

PowerShell'i kullanarak gerekli özelliği aşağıdakilerle yükleyebilirsiniz:

Add-WindowsFeature 'NET-HTTP-Activation'

1

Windows 10'da (istemci) bunu kullanarak komut dosyasını da yazabilirsiniz.

Enable-WindowsOptionalFeature -Online -NoRestart -FeatureName WCF-HTTP-Activation45 -All

Bunun sunucu skus'undan farklı bir komut olduğunu unutmayın


0

.NET Framework'ün HTTP Etkinleştirme özelliği Windows İşlem Etkinleştirme özelliği de gereklidir


0

Bu benim için gerçekten aptalca bir şeydi. Buraya svc 404 konularında daha popüler konulardan biri olarak ekleniyor.

Yaptığım Proje Ayarları '\ Web \ Proje URL'sini yapıştırdım:

http://blah.webservice.local.blahblah.com/Blah.svc

Ve bilinmeyen bir nedenden dolayı (bunu bin kez yaptıktan sonra) .svc dosyasının adının sonunda olduğunu hemen fark etmedi.

DOH!

Adresi WCF test istemcimden yapıştırdım ve yeterince kontrol etmedim. Bu arka planda yaptı .svc adresinde bir IIS uygulaması oluşturmak oldu ve ben IIS dışında hiçbir şey alıyordu. .Svc dosyasına nasıl vurabileceğimi bile anlayamadım.

Basit düzeltme, açıkçası, uygulamayı IIS'den kaldırın ve proje URL'sini değiştirin.

Neredeyse 20 yıl sonra, yine de okul çocuğu hataları / çaylak hataları yapabilirsiniz. Umarım bu birine yardımcı olur.

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.