Ужасная производительность с WCF и сертификатами (взаимная аутентификация)
Guys / Gals У нас ужасная производительность на нашем сайте, который позже использует WCF в качестве приложения. Мы используем безопасность на уровне сообщений и сертификаты (взаимная аутентификация). Мы кэшируем фабрику каналов в объекте приложения:
Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs)
Dim loChannelFactor As New ChannelFactory(Of OurReference.IWCFChannel)("ClientEndpoint")
loChannelFactor.Open()
Application.Add("ChannelFactory", loChannelFactor)
End Sub
На каждой странице, где нам нужны данные, мы делаем следующее:
Dim Proxy = DirectCast(voWebApp("ChannelFactory"), ChannelFactory(Of OurInfoReference.IOurInfoChannel)).CreateChannel
Proxy.DataCall()
If roWCFService IsNot Nothing Then
CType(roWCFService, ICommunicationObject).Close()
roWCFService = Nothing
End If
Кроме того, я установил установитеsecuritycontext = true.
Мы не хотим кэшировать прокси из-за необходимости связываться с ошибочным состоянием прокси. Насколько я знаю, кэширование стека канала должно быть достаточно в любом случае. Когда я включаю отслеживание, я вижу кучу команд SCT, а не просто для первого вызова, как я ожидал. Кто-нибудь знает, что происходит? Неправильно ли мы кешируем фабрику каналов?
спасибо, Ncage