Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 用SoapUI进行WCF编程_.net_Wcf_Web Services_Soap_Soapui - Fatal编程技术网

.net 用SoapUI进行WCF编程

.net 用SoapUI进行WCF编程,.net,wcf,web-services,soap,soapui,.net,Wcf,Web Services,Soap,Soapui,我正在尝试我的第一个WCF程序,我正在使用SoapUI来导入第三方的主机。我有一个基本问题和一个编程问题,假设我对第一个问题的假设是正确的 基本问题这个第三方给了我他们的.wsdl,我可以将其加载到SoapUI中。我的假设是,使用SoapUI中的web服务定义语言,SoapUI正在模拟他们的实际服务,这些服务将在稍后的某个时候提供所以我应该使用我的windows服务作为“客户端”向SoapUI发送消息,对吗 背景信息:我的windows服务最终需要能够向位于不同服务器上的主机服务发送soap消息

我正在尝试我的第一个WCF程序,我正在使用SoapUI来导入第三方的主机。我有一个基本问题和一个编程问题,假设我对第一个问题的假设是正确的

基本问题这个第三方给了我他们的.wsdl,我可以将其加载到SoapUI中。我的假设是,使用SoapUI中的web服务定义语言,SoapUI正在模拟他们的实际服务,这些服务将在稍后的某个时候提供所以我应该使用我的windows服务作为“客户端”向SoapUI发送消息,对吗

背景信息:我的windows服务最终需要能够向位于不同服务器上的主机服务发送soap消息。我还需要托管自己的WCF服务,以便第三方服务可以在需要时向我发送消息。-但一旦我完成了客户部分,我会处理这个问题

另一个问题:我在MSDN上看到的所有示例都使用WCF库。还有WCF服务应用程序项目类型哪一个适合我正在尝试的工作?

进程我的解决方案中有一个windows服务。然后,我添加了一个WCF服务应用程序,并在引用新web服务的windows服务中添加了一个服务引用我甚至需要这样做才能将消息实际发送到SoapUI吗?我想我只需要为接收来自他们(第三方)服务的消息的我主持这个WCF服务

如果我是正确的,我只需要做一个WCF客户端。但是,在MSDN上的示例中。他们的解决方案中有一个客户机/主机/和WCF库。在客户端中有一个对WCF库的引用。然后实例化“库的客户端”的新实例

   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
Sub-Main()
'步骤1:创建WCF代理的实例
作为新CalculatorClient()的Dim客户端
'步骤2:调用服务操作。
'调用添加服务操作。
Console.WriteLine(“**********这是客户端**********”)
Console.WriteLine(“输入双精度”)
尺寸值1为双精度=Console.ReadLine()
Console.WriteLine(“输入另一个Double”)
尺寸值2为双精度=Console.ReadLine()
Dim结果为Double=Client.Add(值1,值2)
WriteLine(“Add({0},{1})={2}”,value1,value2,result)
'调用减法服务操作。
结果=客户端。减去(值1,值2)
WriteLine(“Subtract({0},{1})={2}”,value1,value2,result)
'调用乘法服务操作。
结果=客户端。乘法(值1,值2)
WriteLine(“Multiply({0},{1})={2}”,value1,value2,result)
'调用Divide服务操作。
结果=Client.Divide(值1、值2)
WriteLine(“Divide({0},{1})={2}”,value1,value2,result)
'步骤3:关闭客户端将正常关闭连接并清理资源。
Client.Close()
Console.WriteLine()
Console.WriteLine(“按以终止客户端”)
Console.ReadLine()
端接头

因此,这让我相信,即使我不打算从第三方服务接收消息,我仍然需要托管WCF服务,这样我就可以将服务引用添加到我的windows服务中,这样我就可以实例化客户端并将消息发送到第三方服务,对吗?

我对SoapUI不太熟悉,但我的理解是,它允许您通过充当客户端来测试web服务,并调用可用的服务。这可能是对服务的嘲弄,但我对SoapUI不够熟悉,无法用任何智能级别来解决这一问题。如果第三方还没有发布他们的服务,我不确定他们是如何向您提供WSDL的,在您有服务要测试之前,担心客户机实现是没有多大意义的。当然,如果SoapUI可以模拟服务,那么您就可以开始了

WCF库只不过是作为DLL的WCF。这个DLL需要以某种方式托管,如果您使用的是Windows服务,那么WCF库就可以了。WCF服务应用程序是承载WCF服务的ASP.NET网站-如果您使用的是IIS,WCF服务应用程序将是一个很好的起点,但您不是,所以请使用WCF服务库

由于WCF库本身不可用,因此需要托管它。这就是为什么您提到的示例有一个托管部分和一个客户端部分——为了使用WCF服务,需要托管库

因此,对于项目的第一部分(将消息发送给第三方),您的Windows服务需要的只是对该服务的引用,因为它充当客户端

对于第二部分,您需要从第三方接收消息,然后需要在Windows服务中托管自己的WCF服务

简而言之,客户机功能不需要托管—只需要托管WCF服务本身