2009-09-23 95 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扩展”