Hak akses WCF ServiceHost

166

Saya mendapatkan kesalahan berikut saat melewati tutorial WCF.

HTTP tidak dapat mendaftarkan URL http: // +: 8000 / ServiceModelSamples / Layanan / . Proses Anda tidak memiliki hak akses ke namespace ini (lihat http://go.microsoft.com/fwlink/?LinkId=70353 untuk detailnya).

Apakah ini sesuatu yang disebabkan oleh pembatasan pada Windows 7?

Joshua
sumber
Anda dapat menemukan banyak informasi berguna di blog ini . Hai juga menyediakan alat GUI yang bagus.
bob

Jawaban:

179

Masalahnya adalah bahwa URL sedang diblokir agar tidak dibuat oleh Windows.

Langkah-langkah untuk memperbaiki: Jalankan command prompt sebagai administrator. Tambahkan URL ke ACL

netsh http add urlacl url=http://+:8000/ServiceModelSamples/Service user=mylocaluser
Joshua
sumber
4
Senang Anda memperbaikinya. Apa arti "+"?
John Saunders
Saya punya firasat bahwa itu berarti IP lokal generik.
Joshua
12
Catatan: Anda harus memasukkan url = http: // +: port / path dengan tepat. url = address: port / path tidak bekerja untuk saya, karena Anda mungkin berpikir itu mungkin. Perhatikan juga bahwa Anda harus menggunakan server jaringan sebagai pengguna Anda ("NT AUTHORITY \ NETWORK SERVICE", jika itu yang diatur oleh penginstal layanan Anda.
Mike Pateras
8
Bagaimana cara Anda melakukan ini tanpa memerlukan akses Administrator?
setzamora
1
menggunakan akun saya untuk pengguna tidak berfungsi. Bekerja dengan pengguna = Semua orang
Kim
90

Jika Anda menjalankan melalui IDE, menjalankan sebagai administrator harus membantu. Untuk melakukan ini cari ikon aplikasi Visual Studio 2008/10, klik kanan dan pilih "Run as administrator"

Stephen Newman
sumber
22
Tidak benar-benar solusi 'jauh lebih baik' @Liam - hak administrator di lingkungan pengembang dalam pengaturan perusahaan dapat memberi Anda lebih banyak izin untuk melakukan hal-hal berbahaya. Solusi yang jauh lebih mudah, tentu saja, tetapi dengan kekuatan datang tanggung jawab ...
berlisensi
2
Solusi asli juga memerlukan eksekusi sebagai administrator - diberikan untuk periode waktu yang lebih kecil, dan tentu saja Anda harus mengetahui apa yang Anda lakukan dari konteks keamanan.
Stephen Newman
1
jadi, toh melakukan ini tanpa hak admin?
setzamora
Sempurna. Saya menjalankan program dari IDE yang perlu mendaftarkan URL di komputer lain dan berjalan sebagai administrator bekerja dengan sempurna.
ThePartyTurtle
36

Solusi lain adalah dengan menggunakan alamat

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

.NET Framework (3.5) secara otomatis mendaftarkan alamat ini (http: // *: 8732 / Design_Time_Addresses) untuk lingkup debugging. Ini berguna ketika Anda perlu meng-host layanan di dalam studio visual untuk debugging atau pengujian. Jangan gunakan ini pada produksi ...

Davide Icardi
sumber
1
Beberapa situs merujuk ke port 8731 alih-alih 8732.
Nenad Dobrilovic
1
@DaviFiamenghi Selama .net 3.5 terinstal, ia akan berfungsi. Tetapi saya tidak pernah mencoba. Biasanya saya menganggap tes seperti ini sebagai tes integrasi jadi saya tidak menjalankannya pada TFS, saya hanya menjalankan tes unit pada TFS.
Davide Icardi
@NenadDobrilovic Mine menggunakan 8733 :). Tapi itu tidak penting.
Hooch
1
Server kami menggunakan localhost: 8733 / Design_Time_Addresses dan saya tidak akan pernah tahu mencarinya tanpa jawaban Anda, terima kasih. Juga, alat Bob menunjukkan semua alamat yang diizinkan - itulah bagaimana saya menemukan itu adalah 8733. Terima kasih
Lee Oades
30

Buka prompt perintah sebagai administrator dan Anda menulis perintah di bawah ini untuk menambahkan URL Anda:

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

beberapa hal yang perlu diingat:

  1. ubah port sesuai koding Anda
  2. ubah nama pustaka layanan sesuai nama pustaka Anda
  3. "Layanan Anda" adalah opsional

untuk info lebih lanjut Anda dapat memeriksa: Mengkonfigurasi HTTP dan HTTPS

Metin Atalay
sumber
3

Buka Visual Studio sebagai Administrator .. Ini akan berjalan.

Vicky
sumber
Saya memiliki masalah yang sama dengan nunit-gui. Berlari sebagai administrator, semuanya baik-baik saja.
Valamas
Saya memiliki masalah yang sama vs 2013 dan berjalan karena admin tidak berfungsi
ZoomVirus
mengapa saya membutuhkan admin mengapa saya tidak dapat menjalankan sebagai pengguna standar?
John
-2

Saya bekerja pada Windows Vista. Walaupun saya menghadapi masalah yang sama tetapi ketika saya mencoba menjalankan VS 2008 dengan hak administratif, masalah terselesaikan dan layanan saya sudah aktif. :)

Anitesh Kumar.
sumber
-2

Menjalankan Visual Studio sebagai administrator dapat memperbaiki masalah ini, tetapi jika Anda menggunakan Visual Studio dengan misalnya TortoiseSVN, Anda tidak dapat melakukan perubahan apa pun. Solusi lain yang mungkin adalah menjalankan layanan sebagai administrator dan Visual Studio sisanya sebagai pengguna lokal.

Doro
sumber
-3

silakan buka Visual Studio Anda dalam Mode Administrasi kemudian coba.

Palnati
sumber
-3

Silakan buka Visual Studio Anda sebagai administrator:

masukkan deskripsi gambar di sini

lalit
sumber