2013-08-28 39 views
33

Khi tôi cố gắng để cài đặt một dịch vụ Windows:dịch vụ Windows cài đặt kết thúc trong Rollback

c: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ installutil

tôi nhận được, những gì có vẻ là, một số thông báo thành công và một số thông báo lỗi. Phần đường xuống:

An exception occurred during the Install phase. 
System.ComponentModel.Win32Exception: The specified service has been marked for deletion 

Cuối cùng:

The Rollback phase completed successfully. 

The transacted install has completed. 
The installation failed, and the rollback has been performed. 

Dịch vụ này được đưa ra một mục trong Dịch vụ applet, nhưng nó được đánh dấu là "Disabled". Khi tôi cố gắng thay đổi nó sang trạng thái khác, tôi nhận được thông báo lỗi "được đánh dấu để xóa".

Không có thư nào trong Nhật ký sự kiện. Không có gì hữu ích trong tệp nhật ký được tạo bởi installutil.exe (Tôi tin rằng nó được ghi vào thư mục làm việc hiện tại).

Tôi không có chỉ dẫn để thực hiện điều này. Tôi làm gì?

+0

thể trùng lặp của [Làm thế nào để buộc gỡ bỏ của cửa sổ dịch vụ] (http://stackoverflow.com/questions/225275/how-to-force-uninstallation-of-windows-service) – participant

Trả lời

77

Nó chỉ ra rằng cài đặt có thể, hoặc có thể, sẽ thất bại nếu dịch vụ đó được tô sáng trong applet của Dịch vụ. Đó là an toàn nhất để chỉ cần đóng các dịch vụ applet, cài đặt dịch vụ, và sau đó mở lại các dịch vụ applet. Nó thực sự ngu ngốc.

Ngoài ra, hãy đảm bảo chạy bảng điều khiển dưới dạng quản trị viên.

+0

applet damned đó thực sự gây phiền nhiễu theo cách nó luôn luôn được trong cách. – ProfK

+2

Đã cứu tôi đau đầu như vậy khi đọc nhận xét này! Cảm ơn! –

+0

Trong trường hợp của tôi, applet không có dịch vụ được đánh dấu và thậm chí không tập trung vào tab Dịch vụ - nó nằm trong Trình xem sự kiện. Chào mừng bạn đến với thế giới tuyệt vời của các thông báo lỗi gây nhầm lẫn và gây nhầm lẫn của Microsoft, tôi đoán vậy? – ajeh

7

Tôi đã gặp phải sự cố tương tự và vấn đề đối với tôi là dịch vụ có cùng tên đã được cài đặt. Vì vậy, để cài đặt dịch vụ mới, tôi phải gỡ cài đặt các dịch vụ cũ hơn. Tôi đang học cách tạo và thiết lập các dịch vụ windows và do đó đặt tên xung đột. Đã cố gắng gỡ cài đặt dịch vụ trước thông qua:

c:\Windows\Microsoft.NET\Framework64\v4.0.30319\installutil -u servicename.exe 

Sau khi tuyên bố này thực hiện thành công, cài đặt dịch vụ của bạn và thành công mà không có bất kỳ trở ngại nào.

+0

Nếu tôi nhớ chính xác, tôi đã gỡ cài đặt dịch vụ, nhưng nó vẫn được đánh dấu trong applet của Dịch vụ. –

+0

@DustinOprea nếu dịch vụ đã được gỡ cài đặt thành công, dịch vụ sẽ không xuất hiện trong danh sách dịch vụ bạn nhìn thấy qua cửa sổ "services.msc" – Sarah

+0

Có một hành động "làm mới" có sẵn trong cửa sổ đó, vì một lý do. Tuy nhiên, nó không đơn giản như vậy. Như tôi đã đề cập, nó đủ dài để tôi không thể cung cấp thêm bất kỳ thông tin chi tiết nào cho nó. –

0

Thêm vài dấu kiểm và điểm khác để giải quyết vấn đề trên. dịch vụ xây dựng

  1. trong chế độ phát hành và chịu thả file thư mục và lưu giữ trong con đường khác
  2. Sao chép con đường đó và đi đến cửa sổ hình ảnh lệnh thu nhanh chóng và chạy lệnh này mẫu dưới đây để cài đặt dịch vụ.
  3. Vui lòng đóng dịch vụ.msc cửa sổ nếu mở, sau đó chạy C: Program Files (x86) \ Microsoft Visual Studio 11.0> InstallUtil.exe C: \ RunLocationServices \ TestService.exe
  4. Go services.msc và chọn dịch vụ đó và nhấp vào bắt đầu, nếu nó thay đổi thành "bắt đầu" thì dịch vụ của bạn vẫn hoạt động tốt.

Tuy nhiên nếu vấn đề tồn tại sau đó Một Checkpoint & SOLUTION Khi một dịch vụ bắt đầu, các dịch vụ liên lạc vào Control Service Manager bao lâu dịch vụ phải có để bắt đầu (giai đoạn time-out cho các dịch vụ) . Nếu Trình quản lý kiểm soát dịch vụ không nhận được thông báo "bắt đầu dịch vụ" từ dịch vụ trong khoảng thời gian chờ này, Trình quản lý kiểm soát dịch vụ chấm dứt quá trình lưu trữ dịch vụ. Khoảng thời gian chờ này thường ít hơn 30 giây. Nếu bạn không điều chỉnh khoảng thời gian chờ này, Trình quản lý kiểm soát dịch vụ sẽ kết thúc quá trình. Để điều chỉnh khoảng thời gian chờ này, hãy làm theo các bước sau: 1. Đi tới Bắt đầu> Chạy> và nhập regedit 2.Điều hướng đến: HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control Với thư mục điều khiển được chọn, nhấp chuột phải vào ngăn trên bên phải và chọn DWORD Value mới 3.Name DWORD mới: ServicesPipeTimeout 4.Right-click ServicesPipeTimeout, và sau đó nhấp vào Sửa bấm Decimal, gõ '180000', và sau đó nhấn OK 5.Restart máy tính

Vẫn còn nếu vấn đề tồn tại thì vấn đề trong mã dịch vụ của bạn, vòng lặp ngắt có thể xảy ra do phương pháp/lớp dịch vụ gọi điện của bạn. Đánh giá mã của mỗi dòng.

1

Một số lần điều này xảy ra do sự cố về quyền. Chạy "Command Prompt cho VS 2012" với tư cách là Quản trị viên. Sau đó, nó sẽ hoạt động.

+0

Nó không tạo ra sự khác biệt. Một cái gì đó phá vỡ đơn giản bởi vì cái gì khác được đánh dấu là một lỗi ứng dụng, không phải là một vấn đề quyền. –

0

Vấn đề này là do bảo mật, bạn muốn mở tốt hơn phát triển nhanh chóng lệnh cho VS 2012:

Run as administrator

và cài đặt dịch vụ của bạn. Nó chắc chắn sẽ sửa chữa vấn đề của bạn.

Tôi đã thử và sự cố đã được giải quyết.

0

Kích chuột phải vào Command Prompt và chọn Run as administrator
Sau đó, sao chép và dán vào: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe C:\TestService\bin\Debug\TestService.exe

quả trong TestService.InstallLog là:

Installing service TestService... 
Service TestService has been successfully installed. 
Các vấn đề liên quan