Я пытаюсь использовать мою первую программу WCF, и я использую SoapUI для имитации хоста третьей стороны. У меня есть фундаментальный вопрос, а также вопрос программирования, предполагающий, что я прав в своем предположении о моем первом вопросе.Программирование WCF с помощью SoapUI
Фундаментальный вопрос Эта третья сторона предоставила мне свой .wsdl, который я смог загрузить в SoapUI. Мое предположение заключается в том, что с их языком определения веб-сервисов в SoapUI - SoapUI издевается над своим фактическим сервисом, который появится на месте позже. Так что я должен использовать свою службу Windows как «клиент» для отправки сообщений SoapUI, правильно?
Фоновая информация: Служба окон в конечном итоге должна иметь возможность отправлять мыльные сообщения этой службе хоста, которая находится на другом сервере. Мне также понадобится разместить мою собственную службу WCF, чтобы служба третьей стороны могла отправлять мне сообщения, когда это необходимо. - но я буду иметь дело с этим, как только я получу клиентскую часть.
Другой вопрос: Все примеры, которые я вижу на MSDN, используют библиотеки WCF. Существует также проект проекта WCF Service Application. Какой из них подходит для того, что я пытаюсь сделать?
У меня есть служба Windows в моем решении. Затем я добавил приложение службы WCF и добавил ссылку на службу в моей службе Windows, ссылаясь на мой новый веб-сервис. Нужно ли мне это делать для фактической отправки сообщений в SoapUI? Я бы подумал, что мне нужно будет разместить этот сервис WCF для получения сообщений от их службы (третьей стороны).
Если я прав, я должен был бы сделать только WCF-клиента. Однако, В примере на MSDN. В их решении есть клиент/хост/и 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, чтобы я мог создавать экземпляр клиента и отправлять сообщения сторонней службе, верно?