สิทธิ์การเข้าถึงบริการ WCF


166

ฉันได้รับข้อผิดพลาดต่อไปนี้เมื่อเข้าสู่การสอนแบบ WCF

HTTP ไม่สามารถลงทะเบียน URL http: // +: 8000 / ServiceModelSamples / บริการ / กระบวนการของคุณไม่มีสิทธิ์เข้าถึงเนมสเปซนี้ (ดูhttp://go.microsoft.com/fwlink/?LinkId=70353เพื่อดูรายละเอียด)

นี่เป็นสิ่งที่เกิดจากข้อ จำกัด ใน Windows 7 หรือไม่?


คุณสามารถค้นหาข้อมูลที่เป็นประโยชน์มากมายในบล็อกนี้ เฮ้ยังมีเครื่องมือ GUI ที่ดี
บ๊อบ

คำตอบ:


179

ปัญหาคือว่า URL ถูกบล็อกไม่ให้สร้างโดย Windows

ขั้นตอนในการแก้ไข: เรียกใช้พรอมต์คำสั่งในฐานะผู้ดูแลระบบ เพิ่ม URL ไปยัง ACL

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

4
ดีใจที่คุณแก้ไข "+" หมายถึงอะไร
จอห์นแซนเดอ

ฉันมีลางสังหรณ์ว่ามันหมายถึง IP ท้องถิ่นทั่วไป
Joshua

12
หมายเหตุ: คุณต้องป้อน url = http: // +: port / path url = address: พอร์ต / เส้นทางไม่ได้ผลสำหรับฉันอย่างที่คุณคิดว่าน่าจะเป็น นอกจากนี้โปรดทราบว่าคุณต้องใช้เซิร์ฟเวอร์เครือข่ายในฐานะผู้ใช้ของคุณ ("NT AUTHORITY \ NETWORK SERVICE" หากนั่นคือสิ่งที่โปรแกรมติดตั้งบริการของคุณตั้งไว้
Mike Pateras

8
คุณทำเช่นนี้โดยไม่ต้องใช้สิทธิ์ของผู้ดูแลระบบหรือไม่?
setzamora

1
ใช้บัญชีของฉันสำหรับผู้ใช้ไม่ทำงาน ทำงานกับผู้ใช้ = ทุกคน
คิม

90

หากคุณใช้งานผ่าน IDE การทำงานในฐานะผู้ดูแลระบบควรช่วยคุณ ในการค้นหาไอคอนแอปพลิเคชัน Visual Studio 2008/10 ให้คลิกขวาแล้วเลือก "Run as administrator"


22
ไม่ใช่โซลูชันที่ 'ดีกว่า' จริงๆ @Liam - สิทธิ์ผู้ดูแลระบบในสภาพแวดล้อมแบบ dev ในการตั้งค่าองค์กรอาจทำให้คุณได้รับอนุญาตอีกมากในการทำสิ่งที่อันตราย แน่นอนว่าวิธีแก้ปัญหาที่ง่ายกว่ามาก แต่ด้วยพลังที่มาพร้อมกับความรับผิดชอบ ...
Unsliced

2
โซลูชันดั้งเดิมจำเป็นต้องมีการดำเนินการในฐานะผู้ดูแลระบบ - ให้เวลาน้อยลงและแน่นอนคุณต้องระวังสิ่งที่คุณกำลังทำจากบริบทความปลอดภัย
Stephen Newman

1
ดังนั้นจะทำเช่นนี้โดยไม่มีสิทธิ์ผู้ดูแลระบบ?
setzamora

สมบูรณ์ ฉันใช้งานโปรแกรมจาก IDE ที่ต้องลงทะเบียน URL บนเครื่องอื่นและทำงานในฐานะผู้ดูแลระบบทำงานได้อย่างสมบูรณ์
ThePartyTurtle

36

อีกวิธีคือใช้ที่อยู่

http: // localhost: 8732 / Design_Time_Addresses / YOUR_ADDRESS

.NET Framework (3.5) ลงทะเบียนที่อยู่นี้โดยอัตโนมัติ (http: // *: 8732 / Design_Time_Addresses) สำหรับการดีบักขอบเขต สิ่งนี้มีประโยชน์เมื่อคุณต้องการโฮสต์บริการภายใน visual studio สำหรับการดีบักหรือทดสอบ อย่าใช้สิ่งนี้ในการผลิต ...


1
บางเว็บไซต์อ้างถึงพอร์ต 8731 แทน 8732
Nenad Dobrilovic

1
@DaviFiamenghi ตราบใดที่ติดตั้ง. net 3.5 ควรใช้งานได้ แต่ฉันไม่เคยลอง ปกติฉันจะพิจารณาการทดสอบเช่นนี้เป็นการทดสอบการรวมระบบดังนั้นฉันจึงไม่เรียกใช้บน TFS ฉันจะเรียกใช้การทดสอบหน่วยใน TFS เท่านั้น
Davide Icardi

@NenadDobrilovic Mine ใช้ 8733 :) แต่นั่นไม่สำคัญ
Hooch

1
เซิร์ฟเวอร์ของเราใช้โลคัลโฮสต์: 8733 / Design_Time_Addressesและฉันไม่เคยรู้จักที่จะมองหามันโดยไม่มีคำตอบขอบคุณ นอกจากนี้เครื่องมือของบ็อบแสดงที่อยู่ทั้งหมดที่ได้รับอนุญาต - นั่นคือวิธีที่ฉันค้นพบว่ามันคือ 8733 ขอบคุณ
Lee Oades

30

เปิดพรอมต์คำสั่งในฐานะผู้ดูแลระบบและคุณเขียนคำสั่งด้านล่างเพื่อเพิ่ม URL ของคุณ:

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

จุดที่ควรทราบ:

  1. เปลี่ยนพอร์ตตามการเข้ารหัสของคุณ
  2. เปลี่ยนชื่อไลบรารีบริการตามชื่อไลบรารีของคุณ
  3. "YourService" เป็นตัวเลือก

สำหรับข้อมูลเพิ่มเติมที่คุณสามารถตรวจสอบได้: การ กำหนดค่า HTTP และ HTTPS


3

เปิด Visual Studio ในฐานะผู้ดูแลระบบ .. มันจะทำงาน


ฉันมีปัญหาเดียวกันกับ nunit-gui วิ่งในฐานะผู้ดูแลระบบทุกอย่างดี
Valamas

ฉันมีปัญหาเดียวกันกับปี 2013 และทำงานในฐานะผู้ดูแลระบบไม่ทำงาน
ZoomVirus

เหตุใดฉันจึงต้องการผู้ดูแลระบบทำไมฉันไม่สามารถเรียกใช้ในฐานะผู้ใช้มาตรฐานได้
จอห์น

0

ตัวเลือกอื่น ๆ ที่ทำงานคือ .. ,

หากคุณเปลี่ยนการเยื้องในกลุ่มแอพพลิเคชั่นคุณสามารถเรียกใช้รหัสได้แนวคิดคือเปลี่ยนบัญชีการดำเนินการกลุ่มแอพลิเคชันสำหรับหนึ่งบัญชีที่มีสิทธิ์มากกว่า

สำหรับรายละเอียดเพิ่มเติมใช้บล็อกนี้

https://letrasandnumeros.com/2017/11/27/http-could-not-register-url-http-80-hellowcf-your-process-does-not-have-access-rights-to-this-namespace/


-2

ฉันกำลังทำงานบน Windows Vista แม้ว่าฉันจะประสบปัญหาเดียวกัน แต่เมื่อฉันพยายามเรียกใช้ VS 2008 ด้วยสิทธิ์ระดับผู้ดูแลระบบปัญหาได้รับการแก้ไขและบริการของฉันก็เริ่มทำงาน :)


-2

การเรียกใช้ Visual Studio ในฐานะผู้ดูแลระบบสามารถแก้ไขปัญหาได้ แต่ถ้าคุณใช้ Visual Studio ด้วย TortoiseSVN คุณจะไม่สามารถทำการเปลี่ยนแปลงใด ๆ ได้ อีกวิธีที่เป็นไปได้คือการเรียกใช้บริการในฐานะผู้ดูแลระบบและ Visual Studio ส่วนที่เหลือเป็นผู้ใช้ภายในเครื่อง



โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.