[Mono-dev] WCF and parallel client-execution

Atsushi Eno atsushieno at veritas-vos-liberabit.com
Sun Nov 21 21:40:08 EST 2010


Hello,

Not sure what is exactly happening, but if you are using mono 2.6 then I 
limited service throttling the maximum concurrent sessions (and thus 
calls) to 1 for stable processing (and you cannot change it through 
ServiceThrottlingBehavior, as it is hard coded). So you won't get two 
clients run in parallel.

Atsushi Eno

(2010/11/21 8:10), Chakotey STME wrote:
> Hello,
>
> I have a problem with WCF.
>
> I have a service:
>
>
> <ServiceBehavior(ConcurrencyMode:=ServiceModel.ConcurrencyMode.Multiple,
> InstanceContextMode:=InstanceContextMode.Single)>  _
> Public Class HelloService
>    Implements IHelloService
>
>
>    Private Shared thisInstance As HelloService
>    Protected Sub New()
>      Console.WriteLine("Service erzeugt!")
>
>
>    End Sub
>
>    'singleton
>    Public Shared Function GetSingleton() As HelloService
>      If (thisInstance Is Nothing) Then
>        thisInstance = New HelloService
>      End If
>      Return thisInstance
>    End Function
>
>    Public Function Greet(ByVal name As String) As IList(Of Objekt)
> Implements IHelloService.Greet
>
>      Console.WriteLine("greet aufgerufen! "&  DateTime.Now.Ticks)
>
>      Dim myObjekt As Objekt = New Objekt
>      Dim myObjekt2 As Objekt = New Objekt
>
>
>      Console.WriteLine("Service macht etwas lang dauerndes")
>
>      Dim i As UInteger = 0
>      For i = 0 To UInteger.MaxValue / 2
>
>      Next
>
>      Console.WriteLine("dauert lange fertig")
>
>      Dim list As List(Of Objekt) = New List(Of Objekt)
>      list.Add(myObjekt)
>      list.Add(myObjekt2)
>
>
>
>      Return list
>
>
>    End Function
>
>
>
>    Public Function Greet2(ByVal name As String) As
> System.Collections.Generic.IList(Of Contracts.Objekt) Implements
> Contracts.IHelloService.Greet2
>      Console.WriteLine("greet2 aufgerufen! "&  DateTime.Now.Ticks)
>
>      Dim myObjekt As Objekt = New Objekt
>      Dim myObjekt2 As Objekt = New Objekt
>
>
>      Console.WriteLine("Service2 macht etwas lang dauerndes")
>
>      Dim i As UInteger = 0
>      For i = 0 To UInteger.MaxValue / 2
>
>      Next
>
>      Console.WriteLine("dauert lange fertig")
>
>      Dim list As List(Of Objekt) = New List(Of Objekt)
>      list.Add(myObjekt)
>      list.Add(myObjekt2)
>
>      Return list
>    End Function
> End Class
>
> And I have a Client:
>
>
> Imports System.ServiceModel
> Imports Contracts
>
> Module Module1
>
>    Sub Main()
>      Dim binding = New BasicHttpBinding()
>      Dim address = New EndpointAddress("http://192.168.100.110:8080")
>      Dim client = New HelloClient(binding, address)
>
>      Dim myObjekt = client.Greet("name")
>    End Sub
> End Module
>
> If I execute the client I get a answer from the host and all is perfect.
>
> But I want that more than one client can connect to the service and
> use the methods from the singleton service.
>
> If I execute two clients - one client has to wait until the other
> client has his return value.
>
> I don't know why, because I used the attribute
>
>
> ConcurrencyMode:=ServiceModel.ConcurrencyMode.Multiple
>
> I use a basicHttpBinding and the service is hosted via a
> windows-service with mono-service2.
>
> So can you help me?
>
> I use vb.net 3.5
>
> Thanks,
> _______________________________________________
> Mono-devel-list mailing list
> Mono-devel-list at lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-devel-list
>
>
>



More information about the Mono-devel-list mailing list