通过带有数字证书的 WCF 使用 Web 服务
Posted
技术标签:
【中文标题】通过带有数字证书的 WCF 使用 Web 服务【英文标题】:Consuming Web-Service via WCF with digital certificate 【发布时间】:2021-01-27 01:34:19 【问题描述】:我正在开发一个需要使用 Web 服务 (WSDL) 的应用程序。要访问此 WSDL,我需要使用 certificate.pfx。我已经在我的电脑上安装了这个证书。我已经设法通过浏览器和 SOAPUi 访问这个 WS。但是,当我尝试通过 Visual Studio (WCF / .net core) 导入 WSDL 时,会出现以下错误:
尝试在以下位置查找服务时出错 'https://xxxxxxx-spi-homo-ws-site1.xxxx.com/wsdl'。远程服务器 返回错误:(403) Forbidden.
当我尝试通过 .NET Framework 4.7 使用 WS 时,单击“项目>添加服务引用>高级>添加 Web 引用”,要求确认证书(图 1)。当我单击“确定”时,它会出现另一个错误(图 2)。
我尝试在浏览器中执行“另存为...”并创建一个 .wsdl 文件并通过“Visual Studio”的“浏览”进行导入并给出以下错误:
我想知道如何让 Visual Studio 使用证书来访问 WSDL。
【问题讨论】:
这可能是服务器端的问题,能不能在浏览器中访问wsdl文件? 【参考方案1】:如果您可以在浏览器中打开 WSDL 文件,则可以将其保存在本地:
然后,您可以使用 svcutil 生成代理类,svcutil 是一个 .NET 工具,可以从网络位置上的 Web 服务或 WSDL 文件中检索元数据,并生成包含访问 Web 的客户端代理方法的 WCF 类服务运营。
你可以在VS的命令行界面使用这个工具:
执行上述命令会在D盘上生成一个代理类和配置文件,然后将这两个文件添加到你的项目中。
如果问题仍然存在,请随时告诉我。
【讨论】:
如果您觉得我的回复对您有帮助,可以标记为回答。以上是关于通过带有数字证书的 WCF 使用 Web 服务的主要内容,如果未能解决你的问题,请参考以下文章
iPhone Web 服务通过证书身份验证调用 WCF 服务
WCF:Svcutil 生成无效的客户端代理、Apache AXIS Web 服务、重载操作
使用ssl和客户端证书的Wcf:请求svc succes wcf调用返回403.16
尽管有 web.config 条目,但带有 ASP.NET WCF 服务的 jQuery AJAX CORS 无法正常工作