【发布时间】:2014-01-24 12:58:32
【问题描述】:
我正在尝试我的第一个 WCF 程序,并且我正在使用 SoapUI 来模仿第三方的主机。我有一个基本问题和一个编程问题,假设我对第一个问题的假设是正确的。
基本问题 这个第三方给了我他们的 .wsdl,我可以将其加载到 SoapUI 中。我的假设是,使用他们在 SoapUI 中的 Web 服务定义语言 - SoapUI 正在模拟他们将在稍后某个时间推出的实际服务。 所以我应该使用我的 Windows 服务作为“客户端”向 SoapUI 发送消息,对吗?
背景信息:我的 windows 服务最终需要能够向这个位于不同服务器上的主机服务发送肥皂消息。我还需要托管我自己的 WCF 服务,以便第三方服务可以在需要时向我发送消息。 - 但是一旦我完成了客户端部分,我会处理这个问题
另一个问题:我在 MSDN 上看到的所有示例都使用 WCF 库。还有 WCF 服务应用程序项目类型。 哪一个适合我正在尝试做的事情?
流程 我的解决方案中有一个 Windows 服务。然后我添加了一个 WCF 服务应用程序,并在我的 Windows 服务中添加了一个服务引用,以引用我的新 Web 服务。 为了将消息实际发送到 SoapUI,我什至需要这样做吗?我想我只需要托管这个 WCF 服务,我就可以从他们(第三方的)服务接收消息。 p>
如果我是正确的,我只需要创建一个 WCF 客户端。 但是, 在 MSDN 上的示例中。他们的解决方案中有一个 Client/Host/ 和 WCF Lib。在客户端中有对 WCF Lib 的引用。然后它实例化一个“图书馆的客户”的新实例
Sub Main()
' Step 1: Create an instance of the WCF proxy
Dim Client As New CalculatorClient()
'Step 2: Call the service operations.
'Call the Add service operation.
Console.WriteLine("******** This is the Client **********")
Console.WriteLine("Enter a Double")
Dim value1 As Double = Console.ReadLine()
Console.WriteLine("Enter another Double")
Dim value2 As Double = Console.ReadLine()
Dim result As Double = Client.Add(value1, value2)
Console.WriteLine("Add({0},{1}) = {2}", value1, value2, result)
'Call the Subtract service operation.
result = Client.Subtract(value1, value2)
Console.WriteLine("Subtract({0},{1}) = {2}", value1, value2, result)
'Call the Multiply service operation.
result = Client.Multiply(value1, value2)
Console.WriteLine("Multiply({0},{1}) = {2}", value1, value2, result)
'Call the Divide service operation.
result = Client.Divide(value1, value2)
Console.WriteLine("Divide({0},{1}) = {2}", value1, value2, result)
' Step 3: Closing the client gracefully closes the connection and cleans up resources.
Client.Close()
Console.WriteLine()
Console.WriteLine("Press <ENTER> to terminate client.")
Console.ReadLine()
End Sub
所以这让我相信,即使我不打算从第三方服务接收消息,我仍然需要托管 WCF 服务,因此我可以将服务引用添加到我的 Windows 服务,这样我就可以实例化客户端并向第三方服务发送消息,对吗?
【问题讨论】:
标签: .net wcf web-services soap soapui