2009-09-23 28 views
0

在客戶端,我使用SvcUtil.exe生成了一個代理服務器,它工作正常。WCF - WebReferences不工作

然後我添加了一個WebReference到客戶端程序集並調用相同的方法。但它不起作用。

我的程序正在控制檯模式下運行,並且該方法假定返回一個字符串。它沒有返回字符串。我只看到一個空白的控制檯窗口。沒有例外被拋出。在方法調用中設置調試點後,我發現程序在方法調用中暫停了。

我應該尋找什麼來解決問題?

我正在使用VS2005。通過右鍵單擊客戶端項目然後單擊「添加Web引用」彈出式菜單來添加webReference。

+0

您不能使用添加服務引用嗎? – RichardOD 2009-09-23 10:26:06

+0

我不明白,你已經生成了一個代理,爲什麼不使用它呢?爲什麼要添加Web引用? – 2009-09-23 10:33:43

+0

我正在測試它是否有效。 – anonymous 2009-09-23 10:41:20

回答

1

「添加Web引用」和「添加服務引用」是不一樣的東西。後來使用SvcUtil.exe(或類似的東西,有關於here的discution)。

總之,一個是使用WCF框架另一個是使用ASP.NET WebService的東西(wsdl.exe)。看起來很奇怪,該服務適用於SvcUtil而不是wsdl.exe。 WSDL與DataContractSerializer不兼容,但是我從來沒有使用過cas,其中wsdl.exe不起作用,這種情況可能會發生......

您可能想用WcfTestClient來測試服務,也許可以安裝適用於Visual Studio 2005的.NET 3.0工具,請參閱here

0

添加Web引用不添加WCF代理,而是使用舊的WCF之前的API的代理。

根據服務上的綁定,這些舊的代理可能不起作用。基本上他們只有在服務使用BasicHttpBinding時才能工作。

難道你不能使用由SvcUtil生成的代理嗎?

+0

我正在測試它是否有效。 – anonymous 2009-09-23 10:42:35

0

VS 2005最初是爲框架2.0製作的。

爲了使用WCF,您需要:「.NET Framework 3.0的Visual Studio 2005擴展」