我正在编写一个客户端来访问将由第三方托管的 SOAP Web 服务。我有定义接口和数据的 WSDL 和 XSD。
我从 WSDL 创建服务引用没有问题,但是我在构建一个实现它的简单 Web 服务时遇到了问题,我可以用它来测试。(第三方的服务还没有准备好,但即使它正在运行,我仍然想对我自己的测试服务器进行初始测试,而不是针对他们的。)
我四处浏览,显然我可以使用 svcutil 为服务生成一个接口:
svcutil.exe thewsdl.wsdl thexsd.xsd /language:c# /out:ITestService.cs
这会生成一个包含服务接口定义的文件。但现在呢?
我认为最简单的方法是构建一个自托管服务,因此我创建了一个新的控制台应用程序,并在其中实现了一个从服务接口定义派生的类,并使用 ServiceHost 启动它。
它运行,当它运行时,我能够在我的客户端应用程序中创建一个服务引用。但是当我尝试从客户端应用程序调用它时,我收到一个错误:
The provided URI scheme 'http' is invalid; expected 'https'.
解决这个问题的最简单方法是什么?有没有一种简单的方法可以简单地关闭身份验证和授权,并简单地允许不受限制的访问?
编辑:
我正在为此增加赏金,因为最初的问题似乎没有引起注意。
但是,让我们进入症结所在。我正在尝试针对客户的 SOAP 服务编写客户端。作为开发的一部分,我想创建自己的测试 WCF 服务,它实现了相同的 WSDL。
所以我有一个下载的 .wsdl 文件和一个关联的 .xsd 文件,我想用它们创建一个可以使用 VS2010 调试器进行测试的服务。
这个服务是独立运行,还是在 IIS 中运行,或者它是生产稳定的,对我来说并不重要。我想要的只是接受客户站点将接受的请求的服务,并将响应返回给我需要它返回的客户,以测试我对它们的处理。
我如何到达那里?我尝试添加 WCF 服务库,然后在其中使用 svcutil.exe 添加我的新服务,但它似乎没有使用服务器端样板填充 app.config,我尝试重建它没有没用。