Windows Server 2008'de (64bit) wcf hizmetine göz atarken HTTP Hatası 404.3 - Bulunamadı "


89

NET Framework 3.5 sp1 tabanlı ve Windows server 2008 (64bit) üzerinde barındırılan bir uygulama geliştiriyorum.

Yerel olarak wcf hizmetine (.svc) göz atarken her şey yolunda, ancak tam alan URL'si ile gezinirken bir hata oluştu.

yerel adres şu şekildedir : http: //localhost/MyService.svc

ve etki alanı adresi şu şekildedir : http://MySite.ir/MyService.svc

bu arada sayfalar (.aspx) ve diğer dosyalar hem localhost hem de etki alanı adresiyle doğru şekilde çalışır.

herhangi bir Fikir takdir edilecektir

İşte ayrıntılı hata:


HTTP Hatası 404.3 - Bulunamadı

Uzantı yapılandırması nedeniyle talep ettiğiniz sayfa sunulamıyor. Sayfa bir komut dosyasıysa, bir işleyici ekleyin. Dosyanın indirilmesi gerekiyorsa, bir MIME haritası ekleyin. Ayrıntılı Hata Bilgileri

Modül: StaticFileModule

Bildirim: ExecuteRequestHandler

İşleyici: StaticFile

Hata Kodu: 0x80070032

İstenen URL: http://MySite.ir:80/MyService.svc

Fiziksel Yol: D: \ inetpub \ vhosts \ MySite.ir \ httpdocs \ MyService.svc

Oturum Açma Yöntemi: Anonim

Oturum Açan Kullanıcı Anonim

Yanıtlar:


227

Lütfen buradan WCF bileşenlerini etkinleştirdiğinizden emin olun .

Veya alternatif ve kolay yol, kontrol paneline gidin -> Windows özelliğini açın veya kapatın -> ve aşağıdaki ekran görüntüsünde belirtildiği gibi tüm seçeneklerin işaretlendiğinden emin olun.

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

Tüm özellikleri aynı anda etkinleştirirken hata almanız durumunda her kutuyu etkinleştirmeniz ve kabul etmeniz gerekebilir.


37
.Net Framework 4.5 Gelişmiş Hizmetler -> WCF Hizmetlerini Kontrol Et ve -> HTTP Etkinleştirme benim için yaptı!
devHead

3
Windows Server 2012 - sadece gerekli HTTP aktivasyonu ve Bağlantı Noktası Paylaşımı kontrol edildi.
dibs487

2
Kutuları tek tek etkinleştirmeyi bu yanıta eklerdim. Aynı zamanda yapılan tüm kontroller başarısız olabilir. Windows Server 2012'de gerçekleşir.
harveyt

2
bu cevap en üstte olmalıdır
markthewizard1234

3
Bu doğru cevap. Bu benim için sorunu çözdü ve IIS İşleyici Eşlemelerine manuel olarak herhangi bir şey eklemem gerekmedi.
Anthony

25

Tamam, işte cevap:

İşleyici Eşleştirmelerine Git | İşleyici Yöneticisi Ekle -> Ve ardından aşağıdaki bilgileri ekleyin

İstek Yolu: * .svc

Tür: System.ServiceModel.Activation.HttpHandler, System.ServiceModel, Version = 3.0.0.0, Culture = nötr, PublicKeyToken = b77a5c561934e089

İsim: svc-Integrated


3
Bunu web.config dosyasına eklemek isteyen herkes için bu benim için bir .NET 4.5 projesinde işe yarar: <add name = "svc-Integrated" path = " .svc" verb = " " type = "System.ServiceModel. Activation.HttpHandler, System.ServiceModel.Activation, Sürüm = 4.0.0.0, Culture = nötr, PublicKeyToken = 31bf3856ad364e35 "/>
Stefan Mohr

6
Benim için @StefanMohr'dan Web.config'e satır eklemek pek işe yaramadı. Ancak, değiştim path="*.svc"ve verb="*"harika çalıştı. Böylece, çalıştığım satır şuydu: <add name="svc-Integrated" path="*.svc" verb="*" type="System.ServiceModel.Activation.HttpHandler, System.ServiceModel.Activation, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>(configuration / system.webServer / handlers'a eklendi).
Aron Boyette

11

Herkes Windows Server 2012 bu sorun varsa, Bill Moon'un cevabı burada benim için çözüldü:

"Windows Server 2012 için ... Sunucu Yöneticisi'nden Rolleri ve özellikleri ekle'yi tıklayın, uygun sunucuyu seçin, ardından Özellikler'i seçin. .NET Framework 4.5 Özellikleri altında WCF Hizmetleri'ni göreceksiniz ve bunun altında HTTP Etkinleştirmesini bulun. "


1
Mevcut herhangi bir web uygulamasında, Windows özelliğini ekledikten sonra aşağıdakileri de yapmanız gerekecektir: - inetmgr'yi başlatın - "İşleyici eşlemeleri" ni açın - * .svc uzantısı için svc-ISAPI eşlemelerinin mevcut olup olmadığını kontrol edin. Değilse, bunları ana web sitesinden kopyalamak için "Üst Öğeye Döndür" eylemini kullanın. Bu, genellikle IIS7 + 'da olduğu gibi, uygulama için özel işleyici eşlemelerinin web.config içinde yapılandırıldığını varsayar. Aksi takdirde, "Ebeveynliğe Geri Dön" işlemini gerçekleştirirken bunları kaybedersiniz.
Berend Engelbrecht

8

Dizüstü bilgisayarımda Windows 10 var ve WCF geliştirme için visual studio 2015 kullanıyorum. WCF, görsel stüdyoda sorunsuz çalışıyor ancak IIS'de barındırıldığında aynı hatayı aldım.

IIS işleyicisini kontrol ettim. svc uzantısı eksikti. Bu yüzden, ilk cevapta Mori tarafından önerildiği gibi IIS'ye yeni bir işleyici eklemeye çalıştım. "System.ServiceModel.Activation.HttpHandler" türünü bulamadım.

Bu yüzden "Windows özelliklerini Aç veya Kapat" ı açtım ve ekran resminde vurgulandığı gibi özellikleri yükledim.

Bu benim için çalıştı.

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


0

.Net 4.x kullanıyorsanız, PublicKeyToken 31bf3856ad364e35 şeklindedir.

Ancak, WCF Hizmetlerini IIS'de düzgün bir şekilde yükleme hakkındaki bu gönderinin ardından , işleyici benim için ayarlandı.


0

Bunu cevaba yorum olarak eklemek istedim ama bunun için yeterli sayım yoktu. ServiceModelReg ve aspnet_regiis.exe'yi çeşitli bayraklarla çalıştırmayı denedim ve HTTP Aktivasyon özelliğini ekledim ama yine de çalışmadı. System.ServiceModel.Activation.HttpHandler'ı bulamadığından IIS'de İşleyici eşleme kullanıcı arabirimini kullanmak bile işe yaramadı. Sonunda işe yarayan şey, Mori'nin bahsettiği işleyiciyi web.config dosyama manuel olarak eklemekti.

<system.webServer>
    <handlers>
      <add name="svc-Integrated" path="*.svc" verb="GET,HEAD,POST,DEBUG" type="System.ServiceModel.Activation.HttpHandler, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" modules="ManagedPipelineHandler" scriptProcessor="" resourceType="Unspecified" requireAccess="Script" allowPathInfo="false" preCondition="integratedMode" responseBufferLimit="4194304" />

Projem Windows 7'de .Net 3.5 ve IIS 7.5 ve Win Server 2008 R2'de IIS 7.0 çalıştırıyordu.


0

"Windows özelliklerini açma veya kapatma" penceresinden WCF HTTP etkinleştirmelerinin işaretini kaldırmayı deneyin ( Buraya bakın ) ve adresine giderek yeniden yükleyin

%windir%\Microsoft.Net\Framework\v3.0\Windows Communication Foundation\

ve yürüt ServiceModelReg -i

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.