2011-06-22 110 views
12

我剛剛安裝了一個使用VS 2010的windows服務,使用installutil.exe,cmd提示窗口表示提交階段成功完成,但我無法在本地服務文件夾中看到windows服務。找不到windows服務(剛剛安裝)

我在這裏錯過了什麼?

我使用Windows 7和VS 2010

UPDATE:
我未安裝的服務(其被命名爲服務1)更名的東西,是有道理的,安裝服務(相同的過程,上面),仍然無法在服務瀏覽器中找到它。

FWIW ...我在屬性窗口(文件名值)中重命名了我的service1.cs ..但它仍然在服務瀏覽器中顯示service1。我最終更改了代碼中的值(自動生成的代碼)this.serviceInstaller1.ServiceName =「service1」;

更新(2) 我創建了一個虛擬的Windows服務,並且能夠成功安裝(它促使我對域登錄ID &密碼),我能看到它在瀏覽器的服務。

但是,我無法在服務瀏覽器中看到實際的Windows服務(與我的項目有關)。顯然我有權限,因爲我能夠安裝虛擬服務。

根據該本網站Can't see windows service after installation

我看不到在註冊表中的服務在「HKLM \系統\ CurrentControlSet \服務」的路徑。

更新(3)
日誌文件說

與 RunInstallerAttribute.Yes沒有公共屬性的安裝程序可能 在C中找到:..

然而,我在項目解決方案中有一個ProjectInstaller.cs文件。

我加

[runInstaller的(真)]

到ProjectInstaller.cs文件,仍然沒有運氣

任何suggesstions?

+0

你刷新了服務文件夾視圖嗎?有時它不會立即顯示。 –

+0

是的,我有...沒有運氣 – user788487

+0

@ user788487:你是否將ServiceInstaller的ServiceName屬性設置爲?這就是它應該列在下面。 –

回答

2

使您添加的類[RunInstaller(true)] public。

+0

它是公開的...... – user788487

+0

我認爲「沒有公共安裝程序使用RunInstallerAttribute」的原因非常有限。你是否已經移除了安裝程序並再次通過了該過程?這聽起來像是第一次錯過了一些東西。 –

4

檢查,如果你有安裝程序類衍生化與[runInstaller的(真)]屬性的構造是這樣的:

public ServiceSetup() 
{ 
    Installers.Clear(); 

    ServiceInstaller serviceInstaller = new ServiceInstaller(); 
    // serviceInstaller.Description = // FIXME: 
    // serviceInstaller.ServiceName = // FIXME: 
    // serviceInstaller.DisplayName = // FIXME: 
    serviceInstaller.StartType = ServiceStartMode.Automatic; 
    Installers.Add(serviceInstaller); 

    ServiceProcessInstaller serviceProcessInstaller = new ServiceProcessInstaller(); 
    serviceProcessInstaller.Account = ServiceAccount.LocalSystem; 
    serviceProcessInstaller.Username = null; 
    serviceProcessInstaller.Password = null; 
    Installers.Add(serviceProcessInstaller); 
} 
+0

完美!解決我的問題,因爲沒有看到服務列表中的服務:) – nover

1

我只是碰到這個問題完全按照你描述它了。

我是愚蠢地運行installutil生成的myservice.vshost.exe文件。

這可能不是您的問題,但在命令提示符下,我瀏覽到.exe所在的目錄,鍵入installutil後跟一個空格,然後使用製表符自動完成服務exe名稱循環。

我找到的文件以「myservice」開頭,以「.exe」結尾,我讓它運行。

愚蠢的,但這就是發生了什麼。

離開這個消息後人,並希望它可以幫助別人:-)

0

這是半解決方案的最好的。

我有同樣的問題,我已經嘗試了上面提到的所有補救措施和其他程序員的避風港。

我已將Acount類型更改爲LocalService,現在它工作正常。 這可能是臨時解決方案。

8

此外,請記住在列表中查找之前,檢查您提供服務的名稱。從淨我複製粘貼一些代碼,忘了更改服務的名稱與代碼,這樣我當然無法找到它......

serviceInstaller.DisplayName = "Example service" 

衛生署!

0

我對一個我認爲沒有.exe擴展名的文件運行installutil.exe。當我在fileexplorer中查看文件時,擴展名不可見。當我將.exe擴展名添加到服務文件名時,它運行順利:-)。真是無賴。

+0

歡迎來到Stackoverflow.Read常見問題回答之前,請在回答前仔細閱讀queestion。 – coder

0

要添加自定義操作來安裝項目

1.In Solution Explorer中,用鼠標右鍵單擊安裝項目,指向視圖,然後選擇自定義操作。自定義操作編輯器出現。

2.在自定義操作編輯器中,右鍵單擊自定義操作節點並選擇添加自定義操作。出現在項目中選擇項目對話框。

3.雙擊列表框中的應用程序文件夾將其打開,從MyNewService(Active)選擇主輸出,然後單擊確定。主要輸出被添加到自定義操作的所有四個節點:安裝,提交,回滾和卸載。

4.建立安裝項目。

0

這聽起來很奇怪,但要確保service.exe文件是您要安裝的最新版本。恐怕您嘗試將這些文件部署到調試文件夾中,但您確實進行了更改並在發佈模式下重新構建了服務項目。

相關問題