2012-12-16 25 views
12

Tôi muốn lưu trữ wcf trong dịch vụ cửa sổ. Tôi đã làm nhiều lần trước đó mà không có bất kỳ vấn đề gì. Lần này Sau khi tôi cài đặt dịch vụ và bấm vào bắt đầu, tôi nhận được lỗi sau trong EventViewer.Không thể khởi động dịch vụ. Không thể đăng ký URL

Service cannot be started. System.ServiceModel.AddressAccessDeniedException: HTTP could not register URL http://+:.../.../. Your process does not have access rights to this namespace (see http://go.microsoft.com/fwlink/?LinkId=70353 for details).

Khi tôi đăng cai dịch vụ tương tự, cùng một địa chỉ trên ConsoleApplication - tất cả các quyền.

Tôi đã xem các câu hỏi herehere, nhưng không có giải pháp nào giúp tôi.

Có ai có ý tưởng không?

Trả lời

7

tôi thấy rằng việc thay đổi tài khoản cài đặt để LocalSystem đã làm công việc :-)

+3

Nó đã cho tôi một thời gian để tìm làm thế nào để làm điều này, vì vậy đây là các bước: Mở chương trình dịch vụ (Start -> xem dịch vụ địa phương trong Win 7), tìm dịch vụ của bạn trong danh sách, kích chuột phải vào nó, nhấp vào thuộc tính, đi đến tab đăng nhập. Tôi đã thay đổi tài khoản và mật khẩu Active Directory của mình. – Aligned

+0

Nếu bạn muốn thay đổi bản thân dịch vụ, không có bản sao dịch vụ thay đổi theo cách thủ công. Thay đổi thuộc tính "Tài khoản" của ServiceProcessInstaller. – Harry

17

Đối với câu trả lời của bạn, đó là một chút của shotgun gỡ lỗi. Bây giờ bạn có một dịch vụ mạng với quyền quản trị:

LocalSystem Account (Windows):

Tài khoản LocalSystem [...] có đặc quyền rộng rãi trên máy tính cục bộ, và đóng vai trò như các máy tính trên mạng. Mã thông báo của nó bao gồm NT AUTHORITY \ SYSTEM và BUILTIN \ Administrators SID; các tài khoản này có quyền truy cập vào hầu hết các đối tượng hệ thống.

Hầu hết các dịch vụ không cần mức đặc quyền cao như vậy. Nếu dịch vụ của bạn không cần những đặc quyền này, và nó không phải là một dịch vụ tương tác, hãy xem xét sử dụng tài khoản LocalService hoặc tài khoản NetworkService. Để biết thêm thông tin, hãy xem Quyền Bảo mật và Quyền Truy cập Dịch vụ.

Vì vậy, tốt nhất bạn nên chạy dịch vụ này như NetworkService, và cung cấp cho nó các điều khoản thích hợp để sử dụng cổng bạn đang cố gắng sử dụng như được giải thích trong Configuring HTTP and HTTPS:

netsh http add urlacl url=http://+:80/MyUri user="NT AUTHORITY\NETWORK SERVICE" 
Các vấn đề liên quan