Jay*_*Jay 3 authentication wcf wcf-binding wcf-client
注意,WCF noobie 警报
我需要创建一个 WCF 客户端来查询非 WCF Web 服务。Web 服务不是 WCF 服务。此外,Web 服务需要客户端身份验证证书。现在,我有了证书,可以创建一个完美运行的非 WCF 客户端;我能够“添加 Web 引用”并打开一个证书对话框以允许我选择适当的证书,然后继续创建 Web 引用。尝试通过“添加服务引用”创建 WCF 客户端是另一回事,它只是因 403 拒绝访问错误而失败。
我有该服务的 WSDL,并已在其上运行 svcutil.exe,但我不确定如何从那里继续。
谢谢你的帮助!
我假设您正在使用的服务正在执行客户端 SSL 身份验证。
由于添加服务引用失败,您可以使用svcutil从您拥有的WSDL 文件生成客户端。我认为语法会是这样的:
svcutil *.wsdl /l:C# /out:Reference.cs /config /s /ct:System.Collections.Generic.List`1 /ser:Auto /tcv:Version35 /n:*,<NameOfYourNamespaceHere> /edb
Run Code Online (Sandbox Code Playgroud)
这将生成一个文件 Reference.cs,其中包含服务的代理类(您可以为该文件指定任何您想要的名称)。将此文件添加到您的项目中。还将生成一个配置文件,output.config。您可以将此配置添加到应用程序配置中,而不用手动输入所有内容。
现在您可以按照这篇有关使用传输安全性和证书身份验证的MSDN 文章进行操作。您可以跳到客户端部分,其中显示如何在代码和配置中将证书附加到请求。
我知道这是一个老问题,它已经解决了,但我想提一下,添加服务引用也适用于存储在磁盘上的 WSDL 文件。马克也提到过。添加服务引用对话框接受:
因此,如果您有 WSDL 并且都需要 XSD 文件,您也可以使用添加服务引用。唯一棘手的部分是“添加服务引用”对话框没有“浏览”按钮,这就是此功能不为人所知的原因。