2010-08-31 108 views
7

Tôi có một tập tin batch mà tôi đã sử dụng để cài đặt C# Windows Services trong một thời gian, chưa bao giờ gặp vấn đề gì cho đến Windows 7. Tôi đã thử chạy file batch với quyền Administrator. Tôi đã cố gắng để chạy dấu nhắc lệnh với privs quản trị, điều hướng đến cửa sổ dịch vụ EXE và chạy InstallUtil ở đó. Vẫn không hoạt động.Cài đặt C# Windows Service trên Windows 7

Sau khi đọc một số đề xuất khác, tôi đã thử di chuyển tệp ra khỏi thư mục/bin và chạy chúng từ một vị trí khác nhưng điều đó cũng không hoạt động.

tập tin Đợt trông như thế này

@ECHO OFF 

REM The following directory is for .NET 2.0 
set DOTNETFX2=%SystemRoot%\Microsoft.NET\Framework\v2.0.50727 
set PATH=%PATH%;%DOTNETFX2% 

echo Installing IEPPAMS Win Service... 
echo --------------------------------------------------- 
InstallUtil /i IEPPAMS_WinService1.exe 
echo --------------------------------------------------- 
echo Done. 

và tôi có một tập tin đăng nhập mà tôi đổ thông tin để cài đặt. Nếu tôi chỉ cần nhấp đúp vào tệp .bat Tôi nhận được

Chạy cài đặt đã giao dịch.

Bắt đầu giai đoạn Cài đặt của quá trình cài đặt . Xem nội dung của tệp nhật ký cho số C: \ Users \ Justin \ Desktop \ service kiểm tra \ IEPPAMS_WinService1.exe tiến trình của hội đồng. Tệp là tại số C: \ Users \ Justin \ Desktop \ service kiểm tra \ IEPPAMS_WinService1.InstallLog.

Đã xảy ra một ngoại lệ trong giai đoạn Cài đặt . System.InvalidOperationException: Không thể mở Trình quản lý điều khiển dịch vụ trên máy tính '.'. Hoạt động này có thể yêu cầu các đặc quyền khác. Bên trong ngoại lệ System.ComponentModel.Win32Exception được gửi với thông báo lỗi sau : Truy cập bị từ chối.

Giai đoạn khôi phục của quá trình cài đặt đang bắt đầu. Xem nội dung của tệp nhật ký cho số C: \ Users \ Justin \ Desktop \ service kiểm tra \ IEPPAMS_WinService1.exe tiến trình của hội đồng. Tệp là tại số C: \ Users \ Justin \ Desktop \ service kiểm tra \ IEPPAMS_WinService1.InstallLog.

Giai đoạn Rollback hoàn tất thành công.

Cài đặt giao dịch đã hoàn tất.

Khi tôi chạy tệp .bat với đặc quyền quản trị, không có gì được ghi vào tệp nhật ký và dịch vụ vẫn chưa được cài đặt.

Mọi suy nghĩ? Có cách nào mới để cài đặt dịch vụ trong Windows 7 không?

Trả lời

8

Vì vậy, tôi đã có thể khắc phục sự cố bằng cách nhập vào dòng lệnh toàn bộ đường dẫn đến InstallUtil và nó hoạt động. Vì vậy, sau khi điều hướng đến thư mục đó có EXE của tôi, tôi gõ như sau:

C: \ Windows \ Microsoft.NET \ Framework \ v4.0.21006 \ installutil.exe IEPPAMS_WinService1.exe

Không chắc chắn lý do tại sao tôi phải làm điều đó trong Windows 7 bây giờ khi tôi không bao giờ phải ở trong XP, nhưng oh tốt. Cảm ơn tất cả những lời đề nghị!

+1

Tôi đang tìm cách làm điều tương tự bạn đang làm ở đây. Tôi chỉ nhận thấy rằng cho 'Fix' của bạn ở đây của bạn bằng cách sử dụng installutil.exe trong thư mục .NET 4.0 của bạn. Trong câu hỏi ban đầu của bạn, bạn đang sử dụng .NET 2.0 để cài đặt. (đặt DOTNETFX2 =% SystemRoot% \ Microsoft.NET \ Framework \ v2.0.50727) –

+0

Điểm tuyệt vời. Tôi cảm thấy như khi tôi đang đi qua những điều tôi đã cố gắng đi. NET 4.0 và điều đó đã không làm các trick. Sau đó, khi tôi đã đi đến con đường đầy đủ nó đã làm việc. Đã không quay trở lại để thử đường dẫn đầy đủ trong 2.0 và đây là một vài tháng trước vì vậy tôi có thể nhớ sai. –

+0

Vâng đây là câu trả lời !! Nó chi phí cho tôi một ngày người đàn ông! –

11

Nhấp chuột phải vào tệp lô và chạy dưới dạng Quản trị viên.

Bạn có nhiều khả năng sẽ tham gia trận chiến với mô hình bảo mật mới (Kiểm soát tài khoản người dùng) từ Windows Vista và Windows 7. Ngay cả khi bạn đang chạy dưới dạng tài khoản có quyền quản trị, bạn vẫn cần nâng cấp để thực hiện một số (nhất) các hoạt động hành chính.(Có nó có thể vô hiệu hóa tính năng này, nhưng làm không)

Chỉnh sửa ... Các đúng dòng lệnh là InstallUtil YourApp.exe. /i không có vẻ là công tắc chuyển mã cho InstallUtil.

+0

Matthew, cảm ơn nhưng tôi đã thử điều đó. Các kết quả được mô tả ở phần cuối của câu hỏi của tôi. –

+0

@Justin, thử khởi chạy Command Window với tư cách Quản trị viên và sau đó thử phát lệnh theo cách thủ công. Có vẻ như đây là vấn đề về quyền nhưng không ngồi ở máy của bạn, thật khó để đoán được quyền nào đang gây ra sự cố. –

+1

BTW, bạn đã thử tìm trong tệp nhật ký đó chưa? –

3

Khi tôi chạy tệp .bat với đặc quyền quản trị, không có gì được ghi vào tệp nhật ký và dịch vụ vẫn chưa được cài đặt.

Trước hết, bạn phải chạy dưới dạng quyền quản trị viên. Thứ hai, khi bạn "Chạy với tư cách quản trị viên", nó thực sự thay đổi thư mục thành c: \ windows \ system32 làm thư mục ban đầu (không biết tại sao), có thể giải thích tại sao chạy vì quản trị viên không gây ra tệp nhật ký. Thay đổi thủ công vào đường dẫn IEPPAMS_WinService1.exe nằm ở chỗ bắt đầu tập lệnh của bạn.

Các vấn đề liên quan