У меня есть веб-служба WCF, которая обращается к службе окон WCF на другой машине. Служба windows делает все данные доступными и передает результаты веб-службе. Я прочитал несколько статей об утилизации клиента службы для службы WCF правильно, но я не уверен, что лучший способ сделать это в веб-службе. (Если это помогает, веб-сервис PerCall не PerSession)Утилизация клиента службы WCF в веб-службе WCF
Это все, что я делаю прямо сейчас:
Public Class Service1
Implements IService1
Private p_oWindowsService As DataService.Service1Client
Public Sub New()
p_oWindowsService = New DataService.Service1Client
End Sub
Public Function GetData(ByVal value As Integer) As String Implements IService1.GetData
Return p_oWindowsService.GetData(value)
End Function
Public Function GetDataUsingDataContract(ByVal composite As CompositeType) As CompositeType Implements IService1.GetDataUsingDataContract
If composite Is Nothing Then
Throw New ArgumentNullException("composite")
End If
If composite.BoolValue Then
composite.StringValue &= "Suffix"
End If
Return composite
End Function
Я не располагая клиент службы вообще прямо сейчас, от чего я «Мы читаем, что это серьезная проблема. Обходной я смотрю на что-то вроде этого внутри функции GetData:
Public Function GetData(ByVal value As Integer) As String Implements IService1.GetData
Using oWindowsService As New DataService.Service1Client
Return oWindowsService.GetData(value)
End Using
End Function
Основе What is the best workaround for the WCF client `using` block issue?, я знаю, что я должен на самом деле не зависит от помощи блока. Но должен ли я создавать и удалять сервис-клиента в каждой функции? Это мой реальный вопрос.
спасибо.
Вы рекомендуете создавать и закрывать клиент службы как это внутри каждой функции веб-служба вызывает службу Windows? – cjw
@ cjw См. Отредактированный ответ. – CodingYoshi