2012-01-11 185 views
2

我寫了一個Windows服務,並且我有一個管理面板,可以從網頁配置此服務。爲此,我正在使用數據庫。所以基本上我正在做的是我更改從數據庫的值和服務讀取它,它會改變其執行時間..等無法找到類型或名稱空間名稱'ServiceController'(您是否缺少使用指令或程序集引用?)

我的問題是在我的開發服務器一切工作正常。當我安裝我的服務,並上傳網頁到生產服務器我收到此錯誤

類型或命名空間名稱「的ServiceController」找不到(是否缺少using指令或程序集引用?)

它在我的網頁中發生這個錯誤。我檢查了它安裝的服務並且工作正常,但是當我嘗試去服務的配置頁時,它拋出了這個異常。在我的項目中,我看到我已經在頂部添加了​​,並且在構建我的解決方案時,此dll參考錯誤未顯示出來。在設計師看來,它似乎已經導入:

<@ Import Namespace="System.ServiceProcess">;可能是什麼問題?它可能是一個32位/ 64位的問題? (我知道這沒有道理,但任何幫助將不勝感激)

ServiceController agService = new ServiceController("Buddy Service"); 
while (agService.Status == ServiceControllerStatus.Running) 
{     
    lblServiceStatus.Text = "Running"; 
    lblServiceStatus.ForeColor = Color.LimeGreen; 
    btnStopService.Enabled = true; 
    btnStartService.Enabled = false; 
    break; 
} 

它拋出

ServiceController agService = new ServiceController("Buddy Service"); 

我已經確信,「巴迪服務」是在服務列表中,並上線除外它確實如此。

+0

是的,我的目標是我的開發機器和生產服務器的相同版本。 – 2012-01-11 17:34:52

+0

它被設置爲2.0。但在類似於我的其他項目,沒有這個問題。我想我在這裏失去了一些東西。 – 2012-01-11 19:30:36

+0

你可以顯示拋出異常的代碼嗎? – 2012-01-11 19:50:20

回答

2

這聽起來像你已經裝配正確引用。

嘗試改變這一行:

ServiceController agService = new ServiceController("Buddy Service"); 

這樣:

var agService = new System.ServiceProcess.ServiceController("Buddy Service"); 

如果一切正常,你可能還需要改變這一行:

while (agService.Status == ServiceControllerStatus.Running) 

這樣:

​​
+0

我會嘗試這個並回復你。這似乎是合理的。 – 2012-01-11 20:04:49

+0

好的謝謝,似乎是解決方案。我非常感謝幫助。 – 2012-01-11 20:28:29

2

可以確保您添加的System.ServiceProcess在引用列表比用戶列表:

Example

+0

嗯,它是一個web應用程序,我沒有參考文件夾,你顯示的圖像是在控制檯應用程序中。我試圖通過右鍵單擊添加引用添加引用從.Net選項卡找到System.ServiceProcess並添加它,並且無法看到任何文件夾中的dll refence。但是當我右鍵點擊我的項目並選擇屬性tehe我有引用,構建,可訪問性。在我的引用列表中,我可以看到System.ServiceProcess。 – 2012-01-11 17:33:20

相關問題