2015-12-03 106 views
0

我創建WCF服務和一些簡單的WPF應用程序消費它。當我在Visual Studio中運行項目時,WCF測試客戶端打開,應用程序工作正常,在服務工作中定義了方法。WCF服務 - 不工作

但我需要在Windows服務來舉辦這個WCF服務。我遵循this,使用Installutil.exe安裝服務並運行該服務。一切都很好,它的工作。

然而,當我試圖直接從應用程序的調試文件夾中打開與WPF應用程序的可執行文件,我得到這個錯誤:

zad8. has stopped working

選擇與調試它的選項後VS的新實例,我得到

XamlParseException occured in PresentationFramework.dll

堆棧跟蹤顯示是這樣的:

connection can't be started, because the target computer is actively refusing it

你有什麼想法可能會出錯?

回答

0

幸運的是,我已經成功地拿出解決方案。我想我應該發佈它,也許有一天它會幫助某人:)

我確實犯了兩個錯誤,但其中一個不幸是由於我提到的教程(here)導致的暫時停電。 在步驟5中,本教程的點8,有覆蓋的OnStart()方法的一個例子:

protected override void OnStart(string[] args) 
{ 
    if (myServiceHost != null) 
    { 
     myServiceHost.Close(); 
    } 
    myServiceHost = new ServiceHost(typeof(Service1)); 
    myServiceHost.Open(); 
} 

當心,即Service1是在這種背景下模糊的,因爲它是Windows服務項目類的名稱以及WCF服務類的名稱。它應該使用完全限定名稱(這裏是WcfServiceLibrary1.Service1)編寫。在我的情況下,服務名稱是不同的,我只是把Service1在那裏匆忙。無論如何..

如果有人擁有它並且仍然遇到同樣的問題(應用程序停止工作),我認爲您應該嘗試在Visual Studio中打開該項目並嘗試將客戶端使用應用程序作爲新的實例(右鍵點擊項目 - > Debug - > Start as new instance ...)。

這似乎微不足道,但是當u按F5鍵或Ctrl + F5那麼即使u有隻有那些項目設置爲啓動項目,VS將舉辦它的客戶呢。在我的情況下,它確實很重要,因爲我需要使用隔離存儲文件。因爲它保留在服務端,所以我在VS創建的IIS服務器中創建了這個文件。不知何故,我創建這樣的文件的方法已經設置FileMode.Open(),並造成暗戀,因爲在Windows服務中它不存在,並且無法創建新的並且需要正確運行它。

更重要的是,它只是給我看,這個問題不能正確回答,因爲我提供的數據是不夠的,這是微妙的。

乾杯:)