[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