Quyền truy cập WCF Servicehost


166

Tôi nhận được lỗi sau khi đi qua hướng dẫn WCF.

HTTP không thể đăng ký URL http: // +: 8000 / ServiceModelSamples / Service / . Quá trình của bạn không có quyền truy cập vào không gian tên này (xem http://go.microsoft.com/fwlink/?LinkId=70353 để biết chi tiết).

Đây có phải là một cái gì đó gây ra bởi một hạn chế trên Windows 7?


Bạn có thể tìm thấy rất nhiều thông tin hữu ích trên blog này . Hey cũng cung cấp một công cụ GUI đẹp.
bob

Câu trả lời:


179

Vấn đề là URL đang bị chặn do Windows tạo.

Các bước khắc phục: Chạy dấu nhắc lệnh với tư cách quản trị viên. Thêm URL vào ACL

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

4
Vui mừng bạn đã sửa nó. "+" Có nghĩa là gì?
John Saunders

Tôi có linh cảm rằng nó có nghĩa là một IP cục bộ chung.
Joshua

12
Lưu ý: Bạn phải nhập url = http: // +: port / path một cách chính xác. url = địa chỉ: cổng / đường dẫn không hoạt động với tôi, như bạn nghĩ nó có thể. Cũng lưu ý rằng bạn phải sử dụng máy chủ mạng làm người dùng của mình ("NT AUTHORITY \ NETWORK DỊCH VỤ", nếu đó là những gì trình cài đặt dịch vụ của bạn được đặt thành.
Mike Pateras

8
Bất kỳ cách nào bạn làm điều này mà không cần quyền truy cập của Quản trị viên?
setzamora

1
sử dụng tài khoản của tôi cho người dùng không hoạt động. Làm việc với người dùng = Mọi người
Kim

90

Nếu bạn đang chạy qua IDE, chạy với tư cách quản trị viên sẽ giúp ích. Để thực hiện việc này, hãy tìm biểu tượng ứng dụng Visual Studio 2008/10, nhấp chuột phải vào nó và chọn "Chạy với tư cách quản trị viên"


22
Không thực sự là một giải pháp 'tốt hơn nhiều' @Liam - đặc quyền của quản trị viên trong môi trường nhà phát triển trong thiết lập công ty có thể cung cấp cho bạn nhiều quyền hơn để làm những việc nguy hiểm. Một giải pháp dễ dàng hơn nhiều, chắc chắn, nhưng với sức mạnh đến trách nhiệm ...
Unsliced

2
Giải pháp ban đầu cũng yêu cầu thực thi với tư cách quản trị viên - được cấp trong một khoảng thời gian nhỏ hơn và tất nhiên bạn cần phải biết bạn đang làm gì trong bối cảnh bảo mật.
Stephen Newman

1
Vì vậy, dù sao để làm điều này mà không có đặc quyền quản trị?
setzamora

Hoàn hảo. Tôi đang chạy một chương trình từ IDE cần đăng ký URL trên máy khác và chạy với tư cách quản trị viên hoạt động hoàn hảo.
ThePartyTurtle

36

Một giải pháp khác là sử dụng địa chỉ

http: // localhost: 8732 / Design_Time_Addresses / YOU_ADDRESS .

.NET Framework (3.5) tự động đăng ký địa chỉ này (http: // *: 8732 / Design_Time_Addresses) cho phạm vi gỡ lỗi. Điều này rất hữu ích khi bạn cần lưu trữ các dịch vụ bên trong studio trực quan để gỡ lỗi hoặc thử nghiệm. Đừng sử dụng điều này vào sản xuất ...


1
Một số trang web đề cập đến cổng 8731 thay vì 8732.
Nenad Dobrilovic

1
@DaviFiamenghi Miễn là .net 3.5 được cài đặt, nó sẽ hoạt động. Nhưng tôi chưa bao giờ thử. Thông thường tôi coi một thử nghiệm như thế này là thử nghiệm tích hợp vì vậy tôi không chạy thử nghiệm trên TFS, tôi chỉ chạy thử nghiệm đơn vị trên TFS.
Davide Icardi

@NenadDobrilovic Mine sử dụng 8733 :). Nhưng điều đó không quan trọng.
Hooch

1
Máy chủ của chúng tôi đang sử dụng localhost: 8733 / Design_Time_Addresses và tôi chưa bao giờ biết tìm nó mà không có câu trả lời của bạn, cảm ơn. Ngoài ra, công cụ của Bob cho thấy tất cả các địa chỉ được phép - đó là cách tôi phát hiện ra đó là 8733. Cảm ơn
Lee Oades

30

Mở dấu nhắc lệnh với tư cách quản trị viên và bạn viết lệnh bên dưới để thêm URL của mình:

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

Một vài điểm cần lưu ý:

  1. thay đổi cổng theo mã hóa của bạn
  2. thay đổi tên thư viện dịch vụ theo tên thư viện của bạn
  3. "Dịch vụ của bạn" là tùy chọn

để biết thêm thông tin bạn có thể kiểm tra: Định cấu hình HTTP và HTTPS


3

Mở Visual Studio với tư cách Quản trị viên .. Nó sẽ chạy.


Tôi đã có cùng một vấn đề với nunit-gui. Ran là quản trị viên, tất cả đều tốt.
Valamas

Tôi có cùng một vấn đề so với năm 2013 và chạy như quản trị viên không hoạt động
ZoomVirus

Tại sao tôi cần quản trị viên tại sao tôi không thể chạy như người dùng chuẩn?
Giăng


-2

Tôi đang làm việc trên Windows Vista. Ngay cả tôi cũng gặp phải vấn đề tương tự nhưng khi tôi cố chạy VS 2008 với các đặc quyền quản trị, vấn đề đã được giải quyết và dịch vụ của tôi đã hoạt động. :)


-2

Chạy Visual Studio với tư cách quản trị viên có thể khắc phục sự cố, nhưng nếu bạn sử dụng Visual Studio với ví dụ TortoiseSVN, bạn không thể thực hiện bất kỳ thay đổi nào. Một giải pháp khả thi khác là chạy dịch vụ với tư cách quản trị viên và Visual Studio còn lại là người dùng cục bộ.


-3

vui lòng mở Visual Studio của bạn ở Chế độ quản trị, sau đó thử nó.


-3

Vui lòng mở Visual Studio của bạn với tư cách quản trị viên:

nhập mô tả hình ảnh ở đây

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.