2010-07-28 64 views
2

當我創建Windows服務以從Web應用程序(ASP.NET c#)獲取信息以調度客戶端計算機中的某個任務。如何通過Windows服務使用Windows Communication Foundation(WCF)

從Web應用程序中使用WCF。我將WCF參考 添加到Window Service項目作爲服務參考,一切看起來都很好。它 更新app.config文件,添加服務參考等 它無法正常工作。任何想法都會非常有幫助。

我的代碼如下所示

string result = string.Empty; 

BasicHttpBinding myBinding = new BasicHttpBinding(); 
EndpointAddress myEndpoint = new EndpointAddress("http://test.com/Service.svc/DevicesService"); 

using (ChannelFactory<IDevicesService> myChannelFactory = new ChannelFactory<IDevicesService>(myBinding, myEndpoint)) 
{ 

    IDevicesService wcfClient1 = myChannelFactory.CreateChannel(); 
    result = wcfClient1.CheckNetworkConnection(IPLocalHost); 

    if (!string.IsNullOrEmpty(result) && result.Equals(IPLocalHost)) 
    { 
     EventLog.WriteEntry("Test connection succeeded"); 

    } 
    else 
    { 
     EventLog.WriteEntry("No live connection currently available"); 

    } 

    ((IClientChannel)wcfClient1).Close(); 

} 
+3

「它不工作」不是一個非常精確的問題描述,至少不夠精確以得到任何可行的答案。你能更具體一點嗎?你是否遇到異常?如果是粘貼確切的消息和堆棧跟蹤。 – 2010-07-28 09:36:17

+0

當我使用fiddler測試時,Windows服務沒有調用wcf方法(「CheckNetworkConnection」)從遠程服務器獲取數據。現在運行Windows服務時沒有顯示錯誤。我沒有足夠的知識來調試windows服務 – amexn 2010-07-28 09:46:16

+0

調試Windows服務,請參閱http://stackoverflow.com/questions/1982636/debugging-windows-services/1982734#1982734。 – 2010-07-28 15:55:53

回答

4

我發現很容易,建立一個Windows服務時,構建執行同樣的工作,該服務將控制檯應用程序。我將實際的工作代碼(例如上面的代碼片段)抽象爲一個單獨的程序集,然後從我的服務的啓動方法或控制檯的主要方法中調用它。

如果將上面的代碼移動到控制檯應用程序中,它是否工作?如果沒有,你可以通過它,讓我們知道它失敗的地方。當它失敗時,你看到了什麼異常信息?

讓我們知道,我們會幫助!

相關問題