2014-01-24 279 views
1

我正在使用WCF服務,並將它託管在控制檯應用程序中。我將所有配置都放在一個XML文件中。該服務運行良好,我可以連接它從客戶端罰款,但困擾我的是,當我開始它的WcfSvcHost應用程序啓動(在我的圖標托盤),並說「您的服務(S)已託管.... 」。但是,當我點擊它時,它顯示我的服務,並在狀態下它說Stopped(錯誤,沒有端點定義)。自託管WCF服務

我有兩個項目,一個是服務,另一個是託管它的項目。錯誤指向具有服務的項目,它沒有配置,因爲(我認爲)它不是必需的。在App.config中,我擁有承載該服務的項目中的所有配置。

我如何擺脫消息?它甚至是一個問題還是正常?

P.S.我只啓動承載服務的項目,而不是具有服務代碼的項目。

+0

我很困惑。 IIS不會託管你的服務?另一個項目如何託管WCF服務? – crush

+1

@crush只需選擇一個端口並說「開始監聽HTTP請求」,就可以從代碼託管WCF服務。 –

+0

@TimothyShields Web.config是否適用於這種情況? – crush

回答

1

如果WcfSvcHost正在啓動,那麼您的託管應用程序不會啓動。即使您說您正在啓動託管應用程序,請仔細檢查是否已將服務庫設置爲啓動項目。

enter image description here

在上圖中,啓動項目應該是HostingApp你可能有它設置爲WcfServiceLibrary


另外一個可能是您的託管應用程序設置錯誤,在項目設置託管應用程序,檢查輸出類型是Windows Application

enter image description here

如果你必須將其設置爲Class Library然後在「命令行參數」你有/client:"WcfTestClient.exe",這也將導致您的問題。如果您將項目作爲「Serivice Library」啓動,但後來決定將其轉入托管應用程序,則很容易發生。

+0

我檢查了所有這些,我很確定我有所有的設置正確。我100%肯定我的託管應用程序正在啓動(這是WPF,並打開一個窗口,您可以開始/停止服務,但當我僅使用控制檯應用程序時,我也遇到了這個問題)。我正在使用VS 2013 Ultimate。我有一些項目依賴項,託管項目依賴於依賴於另一個項目的服務庫。我有一個啓動項目集(託管應用程序),這是一個Windows應用程序,服務庫是一個類庫。 – Squeazer

+0

我懂了!如果右鍵單擊服務庫項目,在WCF選項下,有一個選項「在調試解決方案中的另一個項目時啓動WCF服務主機」,只需取消選中即可。 – Squeazer

3

在點擊了一些項目後,我找到了解決方案。如果右鍵單擊服務庫項目,在WCF選項下,有一個選項「在調試解決方案中的另一個項目時啓動WCF服務主機」,只需取消選中該項並停止。

此外,檢查斯科特張伯倫的答案,這可能是在某些情況下的原因。