정보를 여러 클라이언트에 브로드 캐스팅하는 WCF 서비스를 호스팅하는 Windows 서비스가 있습니다. 클라이언트에서 서비스 종료를 정상적으로 처리하고 싶습니다. 즉, 서비스가 사라 졌거나 닫고 메시지를 팝업하고 응용 프로그램을 닫으려는 것을 감지하고 싶습니다. 현재 가까운 전화선에서 서비스를 종료하면 다음과 같은 결과를 얻습니다.Windows 서비스에서 호스팅되는 WCF 이중 세션의 서비스 종료 처리
": 00 : ServiceHost를 닫기 작업이 00 후 시간이 초과되었습니다. 클라이언트가 필요한 시간 내에 sessionful 채널을 닫 실패했기 때문에 09.9910000이 될 수 있습니다."
질문 : 나는 가까운 요청을 감지하려면 어떻게해야하고 클라이언트를 닫으시겠습니까?
서비스가 내가 얻을 클라이언트에서 닫힌 후
는여기에 가까운 코드 "소켓 예외는 기존 연결이 원격 호스트에 의해 강제로 끊겼습니다 발생했습니다." 여기
If Not (_LivePricingHost Is Nothing) Then
_LivePricingHost.Close()
_LivePricingHost = Nothing
End If
내가 상용구 코드와 나는 클라이언트까지 제기하고있는 이벤트를 폐기 제거, 나는이 이중 세션을 설정하는 데 사용하는 클래스입니다.
Imports System.ServiceModel
Public Class NotificationCallback
' Implements LivePricingService.IMessageCallback
Implements IDisposable
Private _ns As LivePricingService.MessageClient
Public Sub New()
Dim context = New InstanceContext(Me)
_ns = New LivePricingService.MessageClient(context)
_ns.SubscribeForBroadcast()
' _ns.AddMessage("PING")
End Sub
#End Region
최종 클래스