2014-01-24 5 views
0

Я пытаюсь использовать мою первую программу 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, чтобы я мог создавать экземпляр клиента и отправлять сообщения сторонней службе, верно?

ответ

1

Я не знаком с SoapUI, но я понимаю, что он позволяет тестировать веб-сервисы, действуя как клиент и называя доступным сервисом. Это могло бы насмехаться над сервисом, но я недостаточно хорошо разбираюсь в SoapUI, чтобы обращаться к нему с любым уровнем интеллекта. Если третье лицо еще не опубликовало свою услугу, я не уверен, как они предоставили вам WSDL, и не имеет большого значения беспокоиться о реализации клиента, пока у вас не будет службы для тестирования. Конечно, если SoapUI может издеваться над сервисом, тогда вам хорошо идти.

Библиотеки WCF - это не что иное, как WCF как DLL. Эта DLL должна быть размещена в некотором роде, и если вы используете службу Windows, то библиотека WCF просто прекрасна. Приложение службы WCF представляет собой веб-сайт ASP.NET, на котором размещена служба WCF, - если вы использовали IIS, приложение Service WCF было бы хорошей отправной точкой, но вы не являетесь, поэтому придерживайтесь Библиотеки услуг WCF.

Поскольку библиотека WCF сама по себе не используется, ее необходимо разместить.Вот почему в примере, на который вы ссылаетесь, есть хостинговая часть и клиентская часть - библиотека должна быть размещена, чтобы служба WCF была использована.

Итак, для первой части вашего проекта (отправки сообщения третьему лицу) все ваши требования к службе Windows являются ссылкой на эту услугу, поскольку она действует как клиент.

Для второй части, где вам необходимо получать сообщения от третьего лица, , затем, вам необходимо разместить свою собственную службу WCF в службе Windows.

Вкратце, клиентская функциональность не должна размещаться - должна быть размещена только служба WCF.

Смежные вопросы