WCF ServiceHost erişim hakları


166

WCF öğretici geçerken aşağıdaki hatayı alıyorum.

HTTP http: // +: 8000 / ServiceModelSamples / Service / URL'sini kaydedemedi . İşleminizin bu ad alanına erişim hakları yok ( ayrıntılar için http://go.microsoft.com/fwlink/?LinkId=70353 adresine bakın).

Bu, Windows 7'deki bir kısıtlamadan mı kaynaklanıyor?


Bu blogda birçok yararlı bilgi bulabilirsiniz . Hey ayrıca güzel bir GUI aracı sağlar.
bob

Yanıtlar:


179

Sorun, URL'nin Windows tarafından oluşturulmasının engellenmesidir.

Düzeltme adımları: Komut istemini yönetici olarak çalıştırın. URL'yi EKL'ye ekleyin

netsh http add urlacl url=http://+:8000/ServiceModelSamples/Service user=mylocaluser

4
Bunu düzeltmene sevindim. "+" Ne anlama geliyordu?
John Saunders

Genel bir yerel IP anlamına gelen bir önsezi var.
Joshua,

12
Not: Hemen hemen url = http: // +: bağlantı noktası / yol girmeniz gerekir. url = adres: bağlantı noktası / yol benim için çalışmadı, düşündüğünüz gibi. Ayrıca ağ sunucusunu kullanıcı olarak kullanmanız gerektiğini unutmayın ("NT AUTHORITY \ NETWORK SERVICE", eğer hizmetinizin yükleyicisi bu şekilde ayarlanmışsa.
Mike Pateras

8
Herhangi bir şekilde Yönetici erişimine gerek kalmadan bunu yapabilirsiniz?
setzamora

1
hesabımı kullanıcı için kullanmak işe yaramadı. Kullanıcı ile çalıştı = Herkes
Kim

90

IDE üzerinden çalışıyorsanız, yönetici olarak çalışmak yardımcı olacaktır. Bunu yapmak için Visual Studio 2008/10 uygulama simgesini bulun, sağ tıklatın ve "Yönetici olarak çalıştır" ı seçin


22
Gerçekten 'çok daha iyi' bir çözüm değil @Liam - şirket kurulumunda bir geliştirme ortamındaki yönetici ayrıcalıkları size tehlikeli şeyler yapmak için çok daha fazla izin verebilir. Çok daha kolay bir çözüm, elbette, ama güç ile sorumluluk geliyor ...
9'da Lisanssız

2
Orijinal çözüm, daha küçük bir süre için yönetici olarak verildiği için yürütmeyi de gerektirdi ve elbette bir güvenlik bağlamından ne yaptığınızın farkında olmanız gerekir.
Stephen Newman

1
Peki, yönetici ayrıcalıkları olmadan bunu yapmak için?
setzamora

Mükemmel. Başka bir makinede bir URL kaydetmek için gereken IDE'den bir program çalıştırıyordum ve yönetici olarak mükemmel çalıştı.
ThePartyTurtle

36

Başka bir çözüm adresi kullanmaktır

http: // localhost: 8732 / Design_Time_Addresses / YOUR_ADDRESS .

.NET Framework (3.5), hata ayıklama kapsamı için bu adresi otomatik olarak kaydettirir (http: // *: 8732 / Design_Time_Addresses). Hata ayıklama veya test için hizmetleri visual studio içinde barındırmanız gerektiğinde yararlıdır. Bunu üretimde kullanmayın ...


1
Bazı siteler 8732 yerine 8731 numaralı bağlantı noktasına başvurur.
Nenad Dobrilovic

1
@DaviFiamenghi .net 3.5 kurulu olduğu sürece çalışmalıdır. Ama hiç denemedim. Genellikle böyle bir testi bir entegrasyon testi olarak görüyorum, bu yüzden TFS'de çalıştırmıyorum, sadece TFS üzerinde birim testleri çalıştırıyorum.
Davide Icardi

@NenadDobrilovic Mine 8733 :) kullanıyor. Ama bu önemli değil.
Hooch

1
Sunucumuz localhost kullanıyor : 8733 / Design_Time_Addresses ve cevabınız olmadan onu aramayı asla bilemezdim , teşekkürler. Ayrıca, Bob'un aracı izin verilen tüm adresleri gösterdi - bu şekilde 8733 olduğunu keşfettim. Teşekkürler
Lee Oades

30

Yönetici olarak bir komut istemi açın ve URL'nizi eklemek için aşağıdaki komutu yazın:

netsh http add urlacl url=http://+:8000/YourServiceLibrary/YourService user=Everyone

akılda tutulması gereken birkaç nokta:

  1. bağlantı noktasını kodunuza göre değiştirin
  2. hizmet kitaplığı adını kitaplık adınıza göre değiştirin
  3. "Hizmetiniz" isteğe bağlıdır

daha fazla bilgi için şunları kontrol edebilirsiniz: HTTP ve HTTPS'yi yapılandırma


3

Visual Studio'yu Yönetici olarak açın. Çalıştırılır.


Nunit-gui ile aynı problemi yaşadım. Yönetici olarak koştu, hepsi iyi.
Valamas

2013 ile aynı sorunu yaşıyorum ve yönetici olarak çalışmıyor
ZoomVirus

neden yöneticiye ihtiyacım var neden standart kullanıcı olarak çalışamıyorum?
John


-2

Windows Vista üzerinde çalışıyorum. Hatta aynı sorunla karşı karşıya kaldım, ancak VS 2008'i yönetici ayrıcalıklarıyla çalıştırmaya çalıştığımda, sorun çözüldü ve hizmetim çalışıyordu. :)


-2

Visual Studio'yu yönetici olarak çalıştırmak sorunu çözebilir, ancak Visual Studio'yu örneğin TortoiseSVN ile kullanırsanız, herhangi bir değişiklik yapamazsınız. Olası başka bir çözüm, hizmeti yönetici olarak ve geri kalan Visual Studio'yu yerel kullanıcı olarak çalıştırmak olacaktır.


-3

lütfen Visual Studio'nuzu Yönetim Modunda açın ve deneyin.


-3

Lütfen Visual Studio'nuzu yönetici olarak açın:

resim açıklamasını buraya girin

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.