我正在創建新的WCF服務。我最初只有三個操作。但過了一段時間,我決定再添加兩個。此操作不會顯示在Microsoft測試客戶端中,當我嘗試從我的WPF客戶端添加服務引用時,不會出現在操作列表中。此外,我試圖評論其中一項最初的行動。它仍然在微軟測試客戶端,並可以調用。我試過也刪除由服務生成的dll並再次重新生成。沒有運氣。有什麼類型的「緩存」,Visual Studio存儲我可以刪除的WCF服務庫?WCF服務操作未更新
更新:我正在使用在ASP.NET開發服務器中運行的服務。
我正在創建新的WCF服務。我最初只有三個操作。但過了一段時間,我決定再添加兩個。此操作不會顯示在Microsoft測試客戶端中,當我嘗試從我的WPF客戶端添加服務引用時,不會出現在操作列表中。此外,我試圖評論其中一項最初的行動。它仍然在微軟測試客戶端,並可以調用。我試過也刪除由服務生成的dll並再次重新生成。沒有運氣。有什麼類型的「緩存」,Visual Studio存儲我可以刪除的WCF服務庫?WCF服務操作未更新
更新:我正在使用在ASP.NET開發服務器中運行的服務。
我不知道爲什麼,但我創建了一個新項目,並從有問題的項目中複製了操作的定義,問題消失了。微軟的奧祕之一更多。
您需要了解事情發生的順序。
[OperationContract]
或刪除它們,或更改它們的參數或返回值。這最後會產生一個對服務發送新元數據或WSDL請求的效果。只有然後客戶端才能看到您對服務定義所做的更改。
我們發現的一件事是,當您部署dll時,他們必須在bin中,並且不能駐留在調試或發佈文件夾中。
爲我工作:剛剛重建WCF項目
你關閉客戶端 爲顯示您的服務
class Test
{
static void Main()
{
LocationClient client = new LocationClient();
// Use the 'client' variable to call operations on the service.
// Always close the client.
client.Close();
}
}
這裏的解決方案的客戶端連接:
確保您dataContract呢不包含任何枚舉 (可以用整數代替)
請務必引用一個pr oject的解決方案,而不是你的磁盤
=>你猜對了
我不會稱之爲「微軟之謎」。我會稱之爲「你沒有知道問題是什麼,而是解決了它」。尤其是,通過創建新項目完成的一件事是您啓動了運行更改後的代碼的Development Server的新實例。重新啓動原始服務器可能已解決問題。 –
我也嘗試重新啓動ASP.NET開發服務器,但生成的代碼仍然生成了不同步。那麼,如果我比較整個項目會發現不同的東西,但我坦白地說,我沒有時間做這件事。 – Apocatastasis
我遇到了同樣的問題(操作未出現在生成的客戶端中),並且發現至少有一個可靠的原因/影響。我的服務操作使用[FaultContract]屬性進行裝飾。當我刪除這些屬性時,客戶端已正確生成。我不確定我的FaultContract實現是否有問題,或者服務引用生成器是否不喜歡該屬性。我在生成客戶端後恢復了屬性,並且所有事情都按預期工作。 – JcFx