C# 在不访问实际Web服务的情况下根据WSDL编程
我将使用C#从一些Web服务读取数据。我以前做过很多次,但那些时候我可以从我的开发机器直接访问Web服务 在这个项目中,我刚刚收到了一个.wsdl文件和几个.xsd文件,用于他们在本地intranet中的Web服务 我已经看到,我可以使用“添加Web引用”,并直接指向.wsdl文件,以便创建一个C#类 但是我怎样才能真正测试它呢?我想返回一些虚拟数据,以便在开发过程中可视化。对于这种情况有什么建议吗? 从上述源代码中,可以通过打开Visual Studio命令提示符并运行以下操作来生成.cs文件: wsdl/language:CS/namespace:Your.namespace.Here /out:Directory\To\Save\To\/protocol:SOAP/serverinterface 最后是-your-wsdl-file-here.wsdlC# 在不访问实际Web服务的情况下根据WSDL编程,c#,web-services,wsdl,C#,Web Services,Wsdl,我将使用C#从一些Web服务读取数据。我以前做过很多次,但那些时候我可以从我的开发机器直接访问Web服务 在这个项目中,我刚刚收到了一个.wsdl文件和几个.xsd文件,用于他们在本地intranet中的Web服务 我已经看到,我可以使用“添加Web引用”,并直接指向.wsdl文件,以便创建一个C#类 但是我怎样才能真正测试它呢?我想返回一些虚拟数据,以便在开发过程中可视化。对于这种情况有什么建议吗? 从上述源代码中,可以通过打开Visual Studio命令提示符并运行以下操作来生成.cs文件
您还可以尝试使用SOAPUI轻松地模拟服务。(免费web服务测试工具) 检查:
创建自己的服务器端存根很容易。假设你想用WCF来做,那么。然后,您可以添加一些基本逻辑来让您的客户机工作
您也可以通过使用传统Web服务功能,但我建议您使用WCF。与Windows SDK捆绑在一起的工具(位于C:\Program Files\Microsoft SDK\Windows\v6.0\Bin)是一个很好的命令行工具,可以生成WCF客户端代理。我发现这是一种查询WSDL的好方法。它将为服务创建一个接口,然后创建一个实现该接口的代理类。然后,您可以模拟实现该接口的其他东西以方便测试。您可能还想尝试“Fiddler”()之类的产品
它允许您捕获HTTP(或HTTPS)数据包并发送一个虚假的自动回复文件,就像服务器发送了响应一样。我在我的项目中使用它,当测试服务器离线时(通常是离线的),它会产生奇迹般的效果。我获取一个旧的响应包,将其保存为文本文件,然后再次发送回,我正在构建的应用程序不知道它不是来自实际主机。我还发现本文非常有用: 它描述了从下载WSDL文件到创建测试项目所需的步骤:
这只适用于.Net Framework,因为.Net Core和.Net 5放弃了WCF服务器支持。但是我发现在.Net 5上安装主项目是可以接受的,但是在.Net Fw 4.8上安装这个模拟服务,在这里不用谷歌搜索也可以。这个线程应该是第一次击中当有人谷歌!对此没有异议。这不是批评,只是链接来源的信息。这个模拟web服务返回什么样的示例数据?